/* ===== kma-style-bundle-169r4.css ===== */
/*
 KMA FISHING CLUB consolidated CSS bundle
 Version: 1.67r2
 Source: base.html common stylesheet chain from 1.67r1
 Policy: source CSS files are retained; physical deletion is deferred to 1.67r4 after STAGING verification.
 Source order:
 - style-152r8.css
 - style-152r10.css
 - style-152r11.css
 - style-152r12.css
 - style-152r13.css
 - style-152r14.css
 - style-152r15.css
 - style-152r16.css
 - style-152r17.css
 - style-153r2.css
 - style-153r3.css
 - style-153r4.css
 - style-154r1.css
 - style-154r3.css
 - style-154r4.css
 - style-155r1.css
 - style-155r2.css
 - style-155r3.css
 - style-156r1.css
 - style-156r2.css
 - style-156r3.css
 - style-156r4.css
 - style-156r5.css
 - style-156r6.css
 - style-156r7.css
 - style-156r8.css
 - style-156r9.css
 - style-156r10.css
 - style-156r12.css
 - style-156r13.css
 - style-156r14.css
 - style-156r15.css
 - style-158r1.css
 - style-159r2.css
 - style-159r3.css
 - style-160r6.css
 - style-160r7.css
 - style-161r1.css
 - style-162r6.css
 - style-162r8.css
 - style-162r9.css
 - style-162r10.css
 - style-162r11.css
 - style-162r12.css
 - style-162r14.css
 - style-162r15.css
 - style-162r16.css
 - style-162r17.css
 - style-162r18.css
 - style-162r19.css
 - style-162r20.css
 - style-162r21.css
 - style-162r22.css
 - style-162r23.css
 - style-162r24.css
 - style-162r25.css
 - style-162r26.css
 - style-162r27.css
 - style-162r29.css
 - style-162r30.css
 - style-162r31.css
 - style-162r32.css
 - style-162r34.css
 - style-162r35.css
 - style-162r36.css
 - style-162r38.css
 - style-162r39.css
 - style-162r40.css
 - style-162r54.css
 - style-162r55.css
 - style-162r56.css
 - style-162r61.css
 - style-162r62.css
 - style-162r63.css
 - style-162r64.css
 - style-162r65.css
 - style-162r66.css
 - style-162r68.css
 - style-163r1.css
 - style-163r3.css
 - style-163r5.css
 - style-163r6.css
 - style-163r7.css
 - style-163r8.css
 - style-163r8b.css
 - style-164r2.css
 - style-164r3.css
 - style-164r5.css
 - style-164r6.css
 - style-164r7.css
 - style-164r9.css
 - style-164r11.css
 - style-164r12.css
 - style-164r13.css
 - style-164r15.css
 - style-165r1.css
 - style-165r3.css
 - style-165r4.css
 - style-165r5.css
 - style-165r7.css
 - style-166r1.css
*/

/* ===== KMA CSS SOURCE 001/101: style-152r8.css ===== */
:root { --navy:#082f49; --blue:#0369a1; --sky:#e0f2fe; --paper:#fff; --ink:#172033; --muted:#64748b; --line:#dbe6ed; --green:#15803d; --red:#b91c1c; }
* { box-sizing: border-box; }
body { margin:0; color:var(--ink); background:linear-gradient(180deg,#e7f6fc 0,#f8fafc 320px); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif; line-height:1.65; }
.site-header { height:64px; padding:0 max(18px,calc((100% - 1040px)/2)); display:flex; align-items:center; justify-content:space-between; color:white; background:var(--navy); box-shadow:0 3px 12px #082f4933; }
.brand { color:white; text-decoration:none; font-weight:800; font-size:1.05rem; }
.header-actions { display:flex; align-items:center; gap:10px; }.header-actions>a { color:#dff4ff; font-size:.9rem; }
.link-button { color:#dff4ff; background:none; border:0; padding:10px; cursor:pointer; text-decoration:underline; }
.container { width:min(1040px,calc(100% - 28px)); margin:0 auto; padding:38px 0 50px; }
.page-intro { margin-bottom:25px; }
.page-intro h1 { font-size:clamp(1.9rem,5vw,2.7rem); line-height:1.2; margin:4px 0; color:var(--navy); }
.page-intro p:last-child { color:#475569; margin:8px 0; }
.trip-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin:28px 0 18px; }.trip-section-heading h2 { margin:2px 0; color:var(--navy); font-size:clamp(1.6rem,4vw,2.1rem); }.trip-section-heading p:last-child { margin:4px 0; color:#475569; }.trip-section-heading .archive-cta { flex:none; margin:0; }
.archive-cta { display:inline-block; margin-top:10px; padding:8px 13px; color:var(--blue); background:#fff; border:1px solid #bae6fd; border-radius:9px; font-weight:800; text-decoration:none; }.focus-nav { display:flex; gap:18px; margin-top:12px; }.focus-nav a { font-weight:700; }
.eyebrow { color:var(--blue); font-size:.75rem; font-weight:900; letter-spacing:.18em; margin:0; }
.trip-grid { display:grid; gap:22px; }
.trip-card,.login-card { background:var(--paper); border:1px solid var(--line); border-radius:18px; box-shadow:0 10px 30px #0f385414; }
.trip-card { padding:clamp(18px,4vw,28px); scroll-margin-top:15px; }
.featured-trip { border:2px solid #38bdf8; box-shadow:0 14px 36px #0369a126; }.featured-label { display:inline-block; margin-bottom:5px; padding:3px 9px; color:#075985; background:#e0f2fe; border-radius:999px; font-size:.76rem; font-weight:900; }
.trip-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.trip-heading h2 { margin:3px 0 0; font-size:1.4rem; line-height:1.35; color:var(--navy); }
.date { margin:0; color:var(--blue); font-weight:800; }
.count { flex:none; padding:5px 11px; border-radius:999px; color:#065f46; background:#d1fae5; font-weight:800; font-size:.85rem; }
.view-switcher { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:6px; margin:-8px 0 18px; }.view-switcher>span { color:var(--muted); font-size:.82rem; font-weight:700; }.view-switcher a { padding:6px 10px; color:#475569; background:#fff; border:1px solid var(--line); border-radius:8px; font-size:.8rem; font-weight:800; text-decoration:none; }.view-switcher a.active { color:#fff; background:var(--blue); border-color:var(--blue); }.trip-details>summary { margin-top:15px; padding:9px 13px; color:var(--blue); background:#f0f9ff; border:1px solid #bae6fd; border-radius:9px; font-weight:800; cursor:pointer; list-style:none; }.trip-details>summary::-webkit-details-marker { display:none; }.trip-details>summary::before { content:'＋ '; }.trip-details[open]>summary::before { content:'− '; }.trip-details .when-open { display:none; }.trip-details[open] .when-open { display:inline; }.trip-details[open] .when-closed { display:none; }.trip-body { padding-top:2px; }
.trip-meta { margin:18px 0; background:#f8fafc; border-radius:12px; padding:12px 15px; }
.trip-meta div { display:grid; grid-template-columns:80px 1fr; gap:10px; }
.trip-meta div+div { margin-top:5px; }
.trip-meta dt { color:var(--muted); font-size:.82rem; font-weight:800; }
.trip-meta dd { margin:0; }
.trip-meta .multiline { white-space:pre-line; }.map-link { color:var(--blue); font-weight:700; }.map-link span { margin-left:5px; font-size:.78rem; text-decoration:underline; }
.text-link { color:#0369a1; font-weight:700; overflow-wrap:anywhere; text-decoration:underline; }
.rsvp-panel { border:1px solid #bae6fd; background:#f0f9ff; border-radius:12px; overflow:hidden; }
.rsvp-panel summary { padding:12px 15px; color:var(--blue); font-weight:800; cursor:pointer; }
.rsvp-form { padding:4px 15px 17px; display:grid; gap:13px; }
label,legend { font-weight:700; font-size:.9rem; }
input[type=text],input[type=password],textarea,.rsvp-form input:not([type=radio]),.admin-form input:not([type=checkbox]):not([type=file]) { display:block; width:100%; margin-top:5px; padding:11px 12px; color:var(--ink); background:#fff; border:1px solid #b9cbd6; border-radius:9px; font:inherit; }
textarea { resize:vertical; }
input:focus,textarea:focus { outline:3px solid #7dd3fc88; border-color:var(--blue); }
fieldset { border:0; padding:0; margin:0; }
.status-options { display:flex; gap:8px; margin-top:5px; }
.status-options label { flex:1; }
.status-options input { position:absolute; opacity:0; }
.status-options span { display:block; padding:9px 6px; background:white; border:1px solid #b9cbd6; border-radius:9px; text-align:center; cursor:pointer; }
.status-options input:checked+span { border-color:var(--blue); color:var(--blue); background:var(--sky); box-shadow:inset 0 0 0 1px var(--blue); }
.primary { padding:12px 18px; border:0; border-radius:10px; color:white; background:var(--blue); font:inherit; font-weight:800; cursor:pointer; box-shadow:0 4px 10px #0369a133; }
.primary:hover { background:#075985; }
.members { margin-top:20px; }
.members h3 { margin:0 0 8px; font-size:1rem; }
.members h3 span { color:var(--muted); font-size:.8rem; }
.members ul { list-style:none; margin:0; padding:0; }
.members li { display:grid; grid-template-columns:58px minmax(80px,140px) 1fr auto; gap:9px; align-items:start; padding:9px 3px; border-top:1px solid #edf2f5; }
.status { padding:2px 6px; border-radius:5px; font-size:.75rem; font-weight:800; text-align:center; }
.status-参加 { color:var(--green); background:#dcfce7; }.status-不参加 { color:var(--red); background:#fee2e2; }.status-未定 { color:#a16207; background:#fef3c7; }
.comment,.empty { color:var(--muted); font-size:.9rem; }.empty { margin:8px 0 0; }
.party-panel { margin-top:22px; padding:18px; border:1px solid #fed7aa; border-radius:13px; background:#fff7ed; scroll-margin-top:15px; }.party-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }.party-label { margin:0; color:#9a3412; font-weight:900; }.party-heading h3 { margin:2px 0; color:#7c2d12; }.party-count { flex:none; padding:4px 10px; border-radius:999px; background:#ffedd5; color:#9a3412; font-size:.82rem; font-weight:800; }.party-meta { margin:12px 0; }.party-meta div { display:grid; grid-template-columns:65px 1fr; gap:8px; }.party-meta dt { color:#9a3412; font-size:.82rem; font-weight:800; }.party-meta dd { margin:0; }.party-rsvp { border:1px solid #fdba74; border-radius:10px; background:#fff; overflow:hidden; }.party-rsvp summary { padding:11px 13px; color:#9a3412; font-weight:800; cursor:pointer; }.party-button { padding:12px 18px; border:0; border-radius:10px; color:#fff; background:#c2410c; font:inherit; font-weight:800; cursor:pointer; }.party-members { margin-top:14px; }.party-members h4 { margin:0 0 7px; }.party-members h4 span { color:var(--muted); font-size:.8rem; }.party-members ul { list-style:none; margin:0; padding:0; }.party-members li { display:grid; grid-template-columns:58px minmax(80px,140px) 1fr auto; gap:9px; padding:8px 2px; border-top:1px solid #fed7aa; }.party-fields { display:grid; gap:14px; margin:8px 0; padding:18px; border:1px solid #fdba74; border-radius:12px; background:#fff7ed; }.party-fields legend { padding:0 7px; color:#9a3412; font-size:1rem; }.party-fields>p { margin:0; color:var(--muted); font-size:.86rem; }
.login-card { max-width:460px; margin:40px auto; padding:clamp(24px,7vw,42px); text-align:center; }
.login-card h1 { color:var(--navy); margin:3px 0; }.login-card p { color:var(--muted); }.hero-icon { font-size:2.6rem; }
.stack { display:grid; gap:14px; margin-top:25px; text-align:left; }.stack .primary { margin-top:4px; }
.flash { margin-bottom:18px; padding:12px 15px; border-radius:10px; font-weight:700; }.flash.success { color:#166534;background:#dcfce7; }.flash.error { color:#991b1b;background:#fee2e2; }
footer { padding:25px; color:var(--muted); text-align:center; font-size:.8rem; }
footer small { color:#94a3b8; font-size:.68rem; }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:20px; }.admin-heading h1,.form-card h1 { color:var(--navy); margin:3px 0; }.button-link { display:inline-block; text-decoration:none; text-align:center; }.admin-list { display:grid; gap:12px; }.admin-list article { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 20px; background:#fff; border:1px solid var(--line); border-radius:13px; }.admin-list h2,.admin-list p { margin:2px 0; }.admin-list h2 { font-size:1.15rem; }.admin-buttons,.form-actions,.admin-footer-actions { display:flex; align-items:center; gap:10px; }.secondary,.danger { padding:10px 15px; border-radius:9px; font:inherit; font-weight:800; cursor:pointer; }.secondary { color:var(--blue); background:#fff; border:1px solid #7dd3fc; }.danger { color:var(--red); background:#fff; border:1px solid #fecaca; }.form-card { max-width:720px; margin:0 auto; padding:clamp(20px,5vw,36px); background:#fff; border:1px solid var(--line); border-radius:18px; }.admin-form { display:grid; gap:16px; margin-top:22px; }.admin-form small { display:block; margin-top:4px; color:var(--muted); font-weight:400; }.form-actions { justify-content:flex-end; margin-top:8px; }.admin-footer-actions { justify-content:space-between; margin-top:22px; }.link-button.dark { color:var(--blue); }
.secondary:disabled { color:#94a3b8; background:#f1f5f9; border-color:#e2e8f0; cursor:not-allowed; }
.danger:disabled { color:#94a3b8; background:#f1f5f9; border-color:#e2e8f0; cursor:not-allowed; }
.inline-delete button,.mini-delete { padding:2px 7px; color:#9f1239; background:#fff; border:1px solid #fecdd3; border-radius:6px; font-size:.74rem; cursor:pointer; }.pdf-link { display:flex; align-items:center; gap:9px; margin:0 0 18px; padding:12px 14px; color:#1d4ed8; background:#eff6ff; border:1px solid #bfdbfe; border-radius:10px; font-weight:800; text-decoration:none; }.pdf-link span { color:var(--muted); font-size:.78rem; font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.comments-panel { margin-top:22px; padding-top:18px; border-top:2px solid #e2e8f0; scroll-margin-top:15px; }.comments-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }.comments-heading h3 { margin:0; }.comments-heading h3 span { color:var(--muted); font-size:.8rem; }.comment-form { display:grid; grid-template-columns:minmax(120px,180px) 1fr auto; align-items:end; gap:9px; margin:12px 0; padding:13px; background:#f8fafc; border-radius:11px; }.comment-form input { display:block; width:100%; margin-top:4px; padding:9px 10px; border:1px solid #b9cbd6; border-radius:8px; font:inherit; }.comment-list { list-style:none; margin:8px 0; padding:0; }.comment-list li { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; padding:11px 3px; border-top:1px solid #e2e8f0; }.comment-list time { margin-left:8px; color:var(--muted); font-size:.75rem; }.comment-list p { margin:3px 0; white-space:pre-wrap; }.more-link { display:inline-block; margin-top:5px; font-weight:700; }.pagination { display:flex; justify-content:center; align-items:center; gap:15px; margin:20px 0; }.back-link { display:inline-block; margin-top:15px; }.pdf-fields { display:grid; gap:12px; margin:8px 0; padding:18px; border:1px solid #bfdbfe; border-radius:12px; background:#eff6ff; }.pdf-fields legend { padding:0 7px; color:#1d4ed8; font-size:1rem; }.pdf-fields p { margin:0; }.pdf-fields input[type=file] { display:block; width:100%; margin-top:7px; font:inherit; }.check-label { display:flex; align-items:center; gap:7px; }.admin-top-actions { display:flex; align-items:center; gap:9px; }
.archive-intro h1 { margin:3px 0; color:var(--navy); font-size:clamp(1.8rem,5vw,2.5rem); }.archive-intro>p:last-child { margin:6px 0 18px; color:var(--muted); }.archive-search { display:grid; grid-template-columns:1fr 180px auto auto; align-items:end; gap:10px; padding:17px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 6px 20px #0f38540d; }.archive-search input,.archive-search select { display:block; width:100%; margin-top:4px; padding:11px 12px; color:var(--ink); background:#fff; border:1px solid #b9cbd6; border-radius:9px; font:inherit; }.clear-search { padding:11px 4px; white-space:nowrap; }.archive-summary { margin:18px 2px 8px; color:var(--muted); font-weight:700; }.year-group { margin-top:24px; }.year-group>h2 { display:flex; align-items:baseline; gap:3px; margin:0 0 10px; color:var(--navy); }.year-group>h2 span { font-size:2rem; }.archive-list { display:grid; gap:10px; }.archive-list article { display:grid; grid-template-columns:74px 1fr auto; align-items:center; gap:16px; padding:17px; background:#fff; border:1px solid var(--line); border-radius:13px; }.archive-date { display:flex; flex-direction:column; align-items:center; padding-right:15px; border-right:1px solid var(--line); }.archive-date strong { color:var(--blue); font-size:1.05rem; }.archive-date span { color:var(--muted); font-size:.8rem; }.archive-info h3 { margin:0; color:var(--navy); font-size:1.08rem; }.archive-info p { margin:2px 0; color:var(--muted); font-size:.86rem; }.archive-badges { display:flex; flex-wrap:wrap; gap:5px; margin-top:5px; }.archive-badges span { padding:2px 7px; color:#475569; background:#f1f5f9; border-radius:999px; font-size:.7rem; font-weight:700; }.archive-open { padding:9px 12px; color:#fff; background:var(--blue); border-radius:9px; font-size:.84rem; font-weight:800; text-decoration:none; white-space:nowrap; }.no-results { margin-top:20px; padding:35px; text-align:center; background:#fff; border:1px solid var(--line); border-radius:14px; }
.club-notices { margin:0 0 24px; padding:clamp(17px,4vw,25px); background:#fff; border:1px solid #cbd5e1; border-radius:17px; box-shadow:0 8px 25px #0f38540d; scroll-margin-top:12px; }.club-notices-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; }.club-notices-heading h2 { margin:2px 0; color:var(--navy); font-size:1.35rem; }.club-notices-heading>span { padding:3px 9px; color:var(--muted); background:#f1f5f9; border-radius:999px; font-size:.72rem; font-weight:700; }.notice-primary-list { display:grid; gap:9px; }.notice-item { padding:13px 14px; background:#f8fafc; border-left:4px solid #94a3b8; border-radius:9px; }.notice-item.important,.notice-compact.important { background:#fff7ed; border-color:#f97316; }.notice-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }.notice-title-row h3 { margin:0; color:var(--navy); font-size:1rem; }.important-mark { display:inline-block; margin-right:7px; padding:2px 6px; color:#fff; background:#ea580c; border-radius:5px; font-size:.67rem; font-weight:900; vertical-align:2px; }.notice-body { margin:7px 0; white-space:pre-wrap; }.notice-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 14px; color:var(--muted); font-size:.72rem; }.notice-compact-list { display:grid; gap:6px; margin-top:9px; }.notice-compact { border:1px solid #dbe6ed; border-left:4px solid #94a3b8; border-radius:8px; background:#f8fafc; overflow:hidden; }.notice-compact>summary { display:flex; align-items:center; gap:5px; padding:9px 11px; cursor:pointer; list-style:none; }.notice-compact>summary::-webkit-details-marker { display:none; }.notice-compact>summary strong { flex:1; color:var(--navy); }.compact-hint { color:var(--blue); font-size:.72rem; font-weight:700; }.notice-compact-body { padding:0 12px 12px; }.notice-compact-body>p { margin:3px 0 8px; white-space:pre-wrap; }.notice-compact-body form { margin-top:8px; text-align:right; }.notice-empty { padding:12px; text-align:center; }.notice-compose { margin-top:13px; border:1px solid #bae6fd; border-radius:10px; background:#f0f9ff; overflow:hidden; }.notice-compose>summary { padding:10px 13px; color:var(--blue); font-weight:800; cursor:pointer; }.notice-compose>form { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:5px 13px 15px; }.notice-compose input:not([type=checkbox]),.notice-compose textarea { display:block; width:100%; margin-top:4px; padding:9px 10px; background:#fff; border:1px solid #b9cbd6; border-radius:8px; font:inherit; }.notice-body-field { grid-column:1 / 3; }.important-check { display:flex; align-items:center; gap:7px; }.notice-compose .primary { justify-self:end; align-self:end; }
@media (max-width:600px) { .container{padding-top:25px}.trip-heading{display:block}.count{display:inline-block;margin-top:9px}.trip-meta div,.party-meta div{display:block}.trip-meta dt,.party-meta dt{margin-top:7px}.members li,.party-members li{grid-template-columns:55px 1fr auto}.comment{grid-column:2 / 4}.status-options{gap:5px}.status-options span{font-size:.82rem}.site-header{height:58px}.site-header .brand{font-size:0}.site-header .brand span{font-size:1.3rem}.header-actions{gap:5px}.header-actions>a,.link-button{font-size:.78rem;padding:6px}.party-panel{padding:14px}.comment-form{grid-template-columns:1fr}.comment-form .secondary{width:100%}.comment-list li{gap:7px}.pagination{flex-wrap:wrap}.pdf-link{align-items:flex-start;flex-direction:column}.view-switcher{justify-content:flex-start;margin-top:-3px}.trip-section-heading{align-items:stretch;flex-direction:column}.trip-section-heading .archive-cta{align-self:flex-start} }
@media (max-width:600px) { .admin-heading,.admin-list article { align-items:stretch; flex-direction:column; }.admin-heading .button-link,.admin-buttons>* { flex:1; }.admin-buttons .button-link,.admin-buttons button { width:100%; }.admin-footer-actions,.admin-top-actions { align-items:stretch; flex-direction:column; } }
@media (max-width:700px) { .archive-search { grid-template-columns:1fr; }.archive-search .primary { width:100%; }.clear-search { text-align:center; }.archive-list article { grid-template-columns:58px 1fr; gap:10px; }.archive-date { padding-right:9px; }.archive-open { grid-column:1 / 3; text-align:center; }.focus-nav { flex-direction:column; gap:5px; } }
@media (max-width:600px) { .club-notices-heading{align-items:stretch;flex-direction:column}.club-notices-heading>span{align-self:flex-start}.notice-compose>form{grid-template-columns:1fr}.notice-body-field{grid-column:auto}.notice-compose .primary{width:100%;justify-self:stretch}.notice-meta{flex-direction:column}.compact-hint{display:none} }

/* Ver.1.8: participant count and admin change log */
.participant-count-field span { color:var(--muted); font-size:.78rem; font-weight:600; }
.participant-count-field input[type=number] { display:block; width:140px; margin-top:5px; padding:11px 12px; color:var(--ink); background:#fff; border:1px solid #b9cbd6; border-radius:9px; font:inherit; }
.participant-count-field small { display:block; margin-top:4px; color:var(--muted); font-size:.76rem; font-weight:500; }
.people-badge { color:#047857; font-size:.78rem; font-weight:800; white-space:nowrap; }
.log-heading p:last-child { margin:5px 0 0; color:var(--muted); }
.log-summary { margin:12px 0; color:var(--muted); font-weight:700; }
.log-table-wrap { overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 6px 20px #0f38540d; }
.log-table { width:100%; min-width:850px; border-collapse:collapse; font-size:.88rem; }
.log-table th,.log-table td { padding:12px 13px; border-bottom:1px solid #e2e8f0; text-align:left; vertical-align:top; }
.log-table th { color:var(--navy); background:#f8fafc; font-size:.78rem; white-space:nowrap; }
.log-table tr:last-child td { border-bottom:0; }
.log-time { width:155px; white-space:nowrap; color:var(--muted); }
.log-type { display:inline-block; padding:2px 7px; color:#075985; background:#e0f2fe; border-radius:999px; font-size:.75rem; font-weight:800; white-space:nowrap; }
.log-details { min-width:260px; white-space:pre-wrap; overflow-wrap:anywhere; }
.log-empty { padding:30px; background:#fff; border:1px solid var(--line); border-radius:14px; text-align:center; }
@media (max-width:600px) { .participant-count-field input[type=number]{width:100%}.log-heading{align-items:stretch;flex-direction:column} }

/* Ver.1.9: explicit RSVP edit controls */
.response-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; white-space:nowrap; }
.change-button { padding:6px 12px; color:#fff; background:var(--blue); border:1px solid var(--blue); border-radius:8px; font:inherit; font-size:.78rem; font-weight:900; cursor:pointer; box-shadow:0 2px 5px #0369a122; }
.change-button:hover { filter:brightness(.94); }
.party-change-button { background:#c2410c; border-color:#c2410c; }
.response-actions .inline-delete { margin:0; }
.response-actions .inline-delete button { padding:5px 8px; background:#fff; font-size:.72rem; }
.edit-dialog { width:min(520px,calc(100% - 28px)); max-height:calc(100vh - 40px); padding:0; color:var(--ink); background:#fff; border:0; border-radius:16px; box-shadow:0 24px 70px #082f4966; overflow:auto; }
.edit-dialog::backdrop { background:#082f4970; backdrop-filter:blur(2px); }
.edit-rsvp-form { display:grid; gap:13px; padding:20px; }
.edit-rsvp-form input:not([type=radio]),.edit-rsvp-form textarea { display:block; width:100%; margin-top:5px; padding:11px 12px; color:var(--ink); background:#fff; border:1px solid #b9cbd6; border-radius:9px; font:inherit; }
.edit-rsvp-form fieldset { margin:0; padding:0; border:0; }
.edit-rsvp-form legend { margin-bottom:6px; font-weight:700; }
.edit-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.edit-dialog-heading h3 { margin:2px 0 0; color:var(--navy); font-size:1.25rem; }
.dialog-close { width:36px; height:36px; flex:none; padding:0; color:#475569; background:#f1f5f9; border:0; border-radius:999px; font-size:1.35rem; line-height:1; cursor:pointer; }
.edit-dialog-actions { display:flex; justify-content:flex-end; gap:9px; padding-top:4px; }
.cancel-button { padding:11px 15px; color:#475569; background:#fff; border:1px solid #cbd5e1; border-radius:10px; font:inherit; font-weight:800; cursor:pointer; }
@media (max-width:600px) { .response-actions{gap:5px}.change-button{padding:6px 10px}.edit-rsvp-form{padding:16px}.edit-dialog-actions{flex-direction:column-reverse}.edit-dialog-actions>*{width:100%} }


/* Ver.1.10: expired club notice archive */
.notice-heading-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.notice-heading-actions>span { padding:3px 9px; color:var(--muted); background:#f1f5f9; border-radius:999px; font-size:.72rem; font-weight:700; }
.notice-heading-actions>a { padding:5px 9px; color:var(--blue); background:#f0f9ff; border:1px solid #bae6fd; border-radius:8px; font-size:.75rem; font-weight:800; text-decoration:none; }
.notice-heading-actions>a:hover { background:#e0f2fe; }
.notice-archive-intro .archive-cta { margin-top:12px; }
.past-notice-list { display:grid; gap:12px; margin-top:12px; }
.past-notice-item { padding:17px 18px; background:#fff; border:1px solid var(--line); border-left:4px solid #94a3b8; border-radius:13px; box-shadow:0 6px 20px #0f38540d; }
.past-notice-item.important { border-left-color:#f97316; background:#fffaf5; }
.past-notice-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.past-notice-top h2 { margin:0; color:var(--navy); font-size:1.08rem; }
.expired-badge { flex:none; padding:3px 8px; color:#64748b; background:#f1f5f9; border-radius:999px; font-size:.72rem; font-weight:800; white-space:nowrap; }
@media (max-width:600px) { .notice-heading-actions{justify-content:flex-start}.past-notice-top{flex-direction:column}.expired-badge{align-self:flex-start} }


/* Ver.1.11: show all current club notices collapsed by title */
.notice-all-list { margin-top:0; }
.notice-compact>summary { min-height:42px; }
.notice-compact>summary:hover { background:#f1f5f9; }
.notice-compact.important>summary:hover { background:#ffedd5; }
.compact-hint::before { content:"内容を表示"; }
.notice-compact[open] .compact-hint::before { content:"閉じる"; }
.notice-compact[open]>summary { border-bottom:1px solid #e2e8f0; }
@media (max-width:600px) { .compact-hint { display:inline; white-space:nowrap; } .compact-hint::before { content:"表示"; } .notice-compact[open] .compact-hint::before { content:"閉じる"; } }

/* Ver.1.12 notice management */
.notice-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:7px; margin-top:10px; }
.notice-actions form { margin:0; }
.notice-edit-button,.notice-archive-button,.notice-restore-button { display:inline-flex; align-items:center; justify-content:center; min-height:32px; padding:5px 12px; border-radius:8px; font:inherit; font-size:.78rem; font-weight:900; text-decoration:none; cursor:pointer; }
.notice-edit-button { color:#fff; background:var(--blue); border:1px solid var(--blue); }
.notice-archive-button { color:#475569; background:#fff; border:1px solid #cbd5e1; }
.notice-restore-button { color:#166534; background:#f0fdf4; border:1px solid #86efac; }
.notice-actions .mini-delete { min-height:32px; padding:5px 10px; font-size:.76rem; }
.notice-edit-card textarea,.notice-edit-card input:not([type=checkbox]) { display:block; width:100%; margin-top:5px; padding:10px 11px; border:1px solid #b9cbd6; border-radius:9px; background:#fff; font:inherit; }
.notice-date-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.archive-notice-actions { border-top:1px solid #e2e8f0; padding-top:10px; }
@media (max-width:600px) { .notice-actions{justify-content:flex-start}.notice-date-fields{grid-template-columns:1fr}.notice-edit-button,.notice-archive-button,.notice-restore-button{min-height:36px;padding:7px 13px} }

/* Ver.1.13: attendance target and trip photos */
.attendance-summary { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:7px; max-width:430px; }
.attendance-current { display:inline-flex; align-items:baseline; gap:3px; padding:7px 11px; color:#fff; background:var(--blue); border-radius:11px; box-shadow:0 4px 12px #0369a128; font-weight:900; white-space:nowrap; }
.attendance-current small { margin-right:3px; font-size:.7rem; font-weight:800; opacity:.88; }
.attendance-current strong { font-size:1.5rem; line-height:1; }
.attendance-target,.attendance-balance { display:inline-flex; align-items:center; min-height:34px; padding:5px 10px; border-radius:9px; font-size:.8rem; font-weight:900; white-space:nowrap; }
.attendance-target { color:#334155; background:#f1f5f9; border:1px solid #cbd5e1; }
.attendance-target.unset { color:#64748b; }
.attendance-balance.shortage { color:#b91c1c; background:#fef2f2; border:1px solid #fecaca; }
.attendance-balance.exact { color:#166534; background:#f0fdf4; border:1px solid #86efac; }
.attendance-balance.excess { color:#9a3412; background:#fff7ed; border:1px solid #fdba74; }
.admin-required-people { margin-top:5px; color:var(--muted); font-size:.82rem; font-weight:700; }
.photo-panel { margin-top:18px; padding:16px; background:#f8fafc; border:1px solid var(--line); border-radius:14px; }
.photo-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.photo-heading h3 { margin:2px 0 0; color:var(--navy); }
.photo-heading>span { padding:4px 9px; color:#475569; background:#fff; border:1px solid #cbd5e1; border-radius:999px; font-size:.78rem; font-weight:800; }
.photo-note { margin:8px 0 12px; color:var(--muted); font-size:.8rem; }
.photo-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(135px,1fr)); gap:10px; margin:12px 0; }
.trip-photo-card { position:relative; margin:0; padding:6px; background:#fff; border:1px solid #dbe5ec; border-radius:11px; overflow:hidden; }
.trip-photo-card>a { display:block; aspect-ratio:4/3; background:#e2e8f0; border-radius:7px; overflow:hidden; }
.trip-photo-card img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .18s ease; }
.trip-photo-card>a:hover img { transform:scale(1.03); }
.trip-photo-card figcaption { display:flex; flex-direction:column; gap:1px; padding:6px 2px 4px; min-width:0; }
.trip-photo-card figcaption strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.78rem; }
.trip-photo-card figcaption span { color:var(--muted); font-size:.68rem; }
.trip-photo-card form { margin:0; text-align:right; }
.trip-photo-card .mini-delete { padding:4px 7px; font-size:.67rem; }
.photo-upload { margin-top:10px; background:#fff; border:1px dashed #94a3b8; border-radius:10px; }
.photo-upload>summary { padding:10px 12px; color:var(--blue); font-weight:900; cursor:pointer; }
.photo-upload form { display:grid; grid-template-columns:1fr 1.3fr auto; align-items:end; gap:10px; padding:2px 12px 13px; }
.photo-upload input[type=text],.photo-upload input:not([type=file]) { display:block; width:100%; margin-top:4px; padding:9px 10px; border:1px solid #b9cbd6; border-radius:8px; font:inherit; background:#fff; }
.photo-upload input[type=file] { display:block; width:100%; margin-top:5px; font:inherit; }
.photo-upload small { display:block; margin-top:4px; color:var(--muted); font-size:.7rem; }
.photo-limit { margin:10px 0 0; color:#9a3412; font-weight:800; }
@media (max-width:700px) { .attendance-summary{justify-content:flex-start;max-width:none;margin-top:9px}.attendance-current strong{font-size:1.35rem}.photo-upload form{grid-template-columns:1fr}.photo-upload .secondary{width:100%}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }

/* Ver.1.14: photo privacy, staged compression, rotation and admin photo management */
.photo-state { display:inline-flex; width:max-content; margin-top:3px; padding:2px 6px; border-radius:999px; font-size:.66rem; font-weight:900; }
.photo-state.high { color:#1d4ed8; background:#eff6ff; border:1px solid #bfdbfe; }
.photo-state.permanent { color:#166534; background:#f0fdf4; border:1px solid #bbf7d0; }
.photo-card-actions { display:flex; align-items:center; flex-wrap:wrap; gap:5px; padding:2px 2px 4px; }
.photo-card-actions form { margin:0; }
.photo-download,.photo-rotate { display:inline-flex; align-items:center; justify-content:center; min-height:28px; padding:3px 7px; border:1px solid #cbd5e1; border-radius:7px; background:#fff; color:#334155; font:inherit; font-size:.66rem; font-weight:800; text-decoration:none; cursor:pointer; }
.photo-download { color:var(--blue); border-color:#bae6fd; background:#f0f9ff; }
.admin-photo-manager { grid-column:1 / -1; width:100%; margin-top:12px; border-top:1px solid #dbe5ec; padding-top:10px; }
.admin-photo-manager>summary { cursor:pointer; color:var(--navy); font-weight:900; }
.admin-photo-summary { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:12px 0 8px; padding:10px 12px; background:#f8fafc; border-radius:9px; color:var(--muted); font-size:.8rem; }
.admin-photo-summary form,.admin-photo-actions form { margin:0; }
.compress-now { min-height:32px; padding:5px 10px; border:1px solid #2563eb; border-radius:8px; background:#2563eb; color:#fff; font:inherit; font-size:.75rem; font-weight:900; cursor:pointer; }
.admin-photo-list { display:grid; gap:8px; }
.admin-photo-row { display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:11px; align-items:center; padding:9px; border:1px solid #dbe5ec; border-radius:10px; background:#fff; }
.admin-photo-thumb { width:92px; height:68px; border-radius:7px; overflow:hidden; background:#e2e8f0; }
.admin-photo-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.admin-photo-info { display:flex; flex-direction:column; gap:2px; min-width:0; }
.admin-photo-info strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.82rem; }
.admin-photo-info span { color:var(--muted); font-size:.71rem; }
.admin-photo-info .photo-state { color:inherit; }
.photo-warning { color:#b45309; }
.admin-photo-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:5px; max-width:270px; }
.admin-photo-actions>a { padding:5px 8px; color:var(--blue); background:#f0f9ff; border:1px solid #bae6fd; border-radius:7px; font-size:.72rem; font-weight:800; text-decoration:none; }
.mini-action { min-height:31px; padding:4px 8px !important; font-size:.72rem !important; }
@media (max-width:760px) { .admin-photo-row{grid-template-columns:70px minmax(0,1fr)}.admin-photo-thumb{width:70px;height:58px}.admin-photo-actions{grid-column:1 / -1;justify-content:flex-start;max-width:none}.photo-card-actions{justify-content:flex-start} }
.admin-list article { flex-wrap:wrap; }
.admin-photo-manager { flex-basis:100%; }


/* Ver.1.15: collapsed past notices */
.past-notice-item { padding:0; overflow:hidden; }
.past-notice-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; cursor:pointer; list-style:none; }
.past-notice-summary::-webkit-details-marker { display:none; }
.past-notice-title { min-width:0; color:var(--navy); font-size:1.02rem; font-weight:800; }
.past-notice-summary-right { display:flex; align-items:center; gap:9px; flex:none; }
.past-notice-item .when-open { display:none; }
.past-notice-item[open] .when-open { display:inline; }
.past-notice-item[open] .when-closed { display:none; }
.past-notice-body { padding:0 16px 16px; border-top:1px solid #e2e8f0; }
.past-notice-body .notice-body { margin-top:13px; }
@media (max-width:600px) {
  .past-notice-summary { align-items:flex-start; }
  .past-notice-summary-right { align-items:flex-end; flex-direction:column; gap:4px; }
  .past-notice-summary .compact-hint { display:inline; }
}

/* Ver.1.16: iPhone HEIC support and multi-photo upload progress */
.photo-upload-progress { grid-column:1 / -1; margin-top:2px; padding:10px 12px; background:#f0f9ff; border:1px solid #bae6fd; border-radius:10px; }
.photo-progress-line { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:7px; color:#0c4a6e; font-size:.82rem; }
.photo-progress-bar { display:block; width:100%; height:13px; accent-color:#0284c7; }
.photo-progress-detail { display:block; margin-top:6px !important; color:#475569 !important; }
.photo-upload-button:disabled { opacity:.55; cursor:wait; }


/* Ver.1.17: simplified member photo gallery */
.photo-gallery-panel { padding:0; overflow:hidden; }
.photo-gallery-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; cursor:pointer; list-style:none; user-select:none; }
.photo-gallery-summary::-webkit-details-marker { display:none; }
.photo-gallery-title { display:flex; align-items:center; gap:7px; color:var(--navy); font-size:1rem; font-weight:900; }
.photo-gallery-icon { font-size:1.12rem; }
.photo-gallery-summary-right { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:.78rem; font-weight:800; }
.photo-gallery-summary .photo-count { padding:4px 9px; color:#475569; background:#fff; border:1px solid #cbd5e1; border-radius:999px; }
.photo-gallery-panel .when-open { display:none; color:var(--blue); }
.photo-gallery-panel[open] .when-open { display:inline; }
.photo-gallery-panel[open] .when-closed { display:none; }
.photo-gallery-body { padding:0 16px 16px; border-top:1px solid var(--line); }
.photo-gallery-body .photo-note { margin-top:12px; }
.trip-photo-card { padding:6px 6px 7px; }
.trip-photo-link { display:block; aspect-ratio:4/3; background:#e2e8f0; border-radius:7px; overflow:hidden; }
.photo-edit-menu { margin-top:6px; border-top:1px solid #e2e8f0; }
.photo-edit-menu>summary { display:flex; align-items:center; justify-content:center; min-height:30px; padding:5px 7px 1px; color:var(--blue); font-size:.72rem; font-weight:900; cursor:pointer; list-style:none; }
.photo-edit-menu>summary::-webkit-details-marker { display:none; }
.photo-edit-menu>summary::before { content:'⚙ '; }
.photo-edit-menu[open]>summary { color:#475569; }
.photo-edit-body { padding:5px 1px 2px; }
.photo-edit-state { margin-bottom:5px; }
.photo-edit-state .photo-state { margin-top:0; }
.photo-edit-menu .photo-card-actions { padding:0; gap:5px; }
@media (max-width:600px) {
  .photo-gallery-summary { padding:13px 14px; }
  .photo-gallery-summary-right { gap:6px; }
  .photo-gallery-summary .when-closed,.photo-gallery-summary .when-open { font-size:.72rem; }
  .photo-gallery-body { padding:0 12px 13px; }
}


/* Ver.1.18: clearer open/close controls and compact lists */
.toggle-action-button {
  display:inline-flex; align-items:center; justify-content:center; min-width:58px; min-height:32px;
  padding:5px 11px; color:var(--blue); background:#fff; border:1px solid #7dd3fc;
  border-radius:8px; font-size:.76rem; font-weight:900; line-height:1; box-shadow:0 1px 3px #0369a112;
}
.collapsible-list-panel { margin-top:16px; border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
.collapsible-list-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 13px; cursor:pointer; list-style:none; user-select:none; }
.collapsible-list-summary::-webkit-details-marker { display:none; }
.collapsible-list-title { color:var(--navy); font-size:1rem; font-weight:900; }
.collapsible-list-title>span { color:var(--muted); font-size:.8rem; }
.collapsible-list-panel .when-open { display:none; }
.collapsible-list-panel[open] .when-open { display:inline; }
.collapsible-list-panel[open] .when-closed { display:none; }
.collapsible-list-panel[open]>.collapsible-list-summary { border-bottom:1px solid var(--line); background:#f8fafc; }
.collapsible-list-body { padding:7px 13px 12px; }
.members.collapsible-list-panel { margin-top:18px; }
.members.collapsible-list-panel ul,.party-members.collapsible-list-panel ul { margin-top:0; }
.party-list-panel { border-color:#fed7aa; background:#fff; }
.party-list-panel[open]>.collapsible-list-summary { border-bottom-color:#fed7aa; background:#fff7ed; }
.party-toggle-button { color:#9a3412; border-color:#fdba74; }
.comments-collapsible { padding:0; }
.comments-collapsible-body { padding-top:12px; }
.comments-collapsible .comment-form { margin-top:0; }

.rsvp-register-panel { border:2px solid #38bdf8; box-shadow:0 5px 14px #0369a11c; }
.rsvp-register-summary,.party-register-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; list-style:none; }
.rsvp-register-summary::-webkit-details-marker,.party-register-summary::-webkit-details-marker { display:none; }
.rsvp-register-label { font-size:1rem; }
.rsvp-register-panel .when-open,.party-rsvp .when-open { display:none; }
.rsvp-register-panel[open] .when-open,.party-rsvp[open] .when-open { display:inline; }
.rsvp-register-panel[open] .when-closed,.party-rsvp[open] .when-closed { display:none; }
.rsvp-submit-cta { width:100%; min-height:52px; font-size:1.05rem; background:#0284c7; box-shadow:0 6px 15px #0369a13b; }
.rsvp-submit-cta:hover { background:#0369a1; }

.photo-gallery-summary .toggle-action-button { flex:none; }
.photo-card-actions { display:grid; grid-template-columns:1fr; gap:6px; padding:0; }
.photo-card-actions .photo-download { width:100%; min-height:32px; }
.photo-rotate-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px; width:100%; }
.photo-rotate-pair form { width:100%; margin:0; }
.photo-rotate-pair .photo-rotate { width:100%; min-width:0; min-height:32px; padding:4px 3px; }
.photo-delete-form { justify-self:end; margin:0; }
.photo-delete-form .mini-delete { min-height:30px; }

@media (max-width:600px) {
  .toggle-action-button { min-width:56px; min-height:34px; padding:6px 10px; }
  .collapsible-list-summary { padding:10px 11px; }
  .collapsible-list-body { padding:6px 11px 11px; }
  .rsvp-register-summary,.party-register-summary { padding:12px 13px; }
  .rsvp-submit-cta { min-height:54px; font-size:1.06rem; }
  .photo-gallery-summary-right { flex:none; }
  .photo-gallery-summary .photo-count { white-space:nowrap; }
}

/* Ver.1.19: stable accordion controls and work-position restore */
.toggle-action-button { white-space:nowrap; }
details[data-persist-ui] > summary { scroll-margin-top:84px; }


/* Ver.1.20: visually separate completed trips and hide new RSVP entry on past trips */
.past-trip-card {
  background:#f1f5f9;
  border-color:#cbd5e1;
  box-shadow:0 8px 22px #33415512;
}
.past-trip-card .trip-heading h2 { color:#475569; }
.past-trip-card .date { color:#64748b; }
.past-trip-card .trip-details>summary { color:#475569; background:#e2e8f0; border-color:#cbd5e1; }
.past-trip-card .trip-meta { background:#e9eef3; }
.past-trip-label {
  display:inline-block; margin-bottom:5px; padding:3px 9px; color:#475569; background:#e2e8f0;
  border:1px solid #cbd5e1; border-radius:999px; font-size:.74rem; font-weight:900;
}
.past-trip-card .count { color:#475569; background:#e2e8f0; }

/* Ver.1.30: local backup status and controls */
.backup-panel { margin:0 0 22px; padding:18px; border:1px solid #86efac; border-radius:14px; background:#f0fdf4; box-shadow:0 5px 18px #14532d12; }
.backup-panel.backup-warning { border-color:#fbbf24; background:#fffbeb; }
.backup-panel-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.backup-panel h2 { margin:0 0 6px; color:var(--navy); }
.backup-status-line { margin:4px 0; }
.backup-alert { margin:8px 0 0; color:#b45309; font-weight:900; }
.backup-ok { margin:8px 0 0; color:#166534; font-weight:900; }
.backup-button { min-height:44px; white-space:nowrap; }
.backup-note { margin:12px 0 0; color:var(--muted); font-size:.86rem; }
.backup-note code { padding:2px 5px; border-radius:5px; background:#ffffffaa; }
.backup-history { margin-top:12px; }
.backup-history summary { cursor:pointer; font-weight:800; color:var(--navy); }
.backup-history ul { margin:9px 0 0; padding-left:20px; }
.backup-history li { margin:5px 0; }
.backup-history li span { margin-left:8px; color:var(--muted); font-size:.82rem; }
@media (max-width:700px) {
  .backup-panel-head { display:block; }
  .backup-panel-head form { margin-top:14px; }
  .backup-button { width:100%; }
}

/* Ver.1.40: manual two-tier backup with deduplicated uploads */
.backup-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:14px; }
.backup-card { padding:15px; border:1px solid #bbf7d0; border-radius:12px; background:#ffffffb8; }
.backup-card.is-reminder { border-color:#fbbf24; background:#fffdf5; }
.backup-card.is-critical { border-color:#f87171; background:#fff7f7; }
.backup-card h3 { margin:0 0 8px; color:var(--navy); font-size:1.02rem; }
.backup-card form { margin-top:12px; }
.backup-critical { margin:8px 0 0; color:#b91c1c; font-weight:900; }
.backup-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:8px; }
.backup-actions form { margin-top:0; }
.backup-actions button[disabled] { opacity:.55; cursor:not-allowed; }
@media (max-width:800px) {
  .backup-grid { grid-template-columns:1fr; }
  .backup-actions { display:block; }
  .backup-actions form + form { margin-top:8px; }
  .backup-actions button { width:100%; }
}


/* Ver.1.42 - compact backup, stable mobile RSVP layout, compact borrowed-rod control */
.backup-collapsible { padding:0; overflow:hidden; }
.backup-compact-summary { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 16px; cursor:pointer; list-style:none; }
.backup-compact-summary::-webkit-details-marker { display:none; }
.backup-compact-summary>span:first-child { display:grid; gap:2px; min-width:0; }
.backup-compact-summary strong { font-size:1rem; }
.backup-compact-summary small { color:var(--muted); font-weight:600; }
.backup-open-hint { flex:none; padding:6px 10px; border:1px solid #bae6fd; border-radius:999px; color:#0369a1; background:#f0f9ff; font-size:.78rem; font-weight:800; }
.backup-collapsible[open] .backup-open-hint { font-size:0; }
.backup-collapsible[open] .backup-open-hint::before { content:"詳細を閉じる"; font-size:.78rem; }
.backup-collapsible-body { padding:0 16px 16px; }
.rod-rental-total { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; min-width:70px; padding:6px 10px; border-radius:10px; background:#eefcf6; color:#047857; white-space:nowrap; }
.rod-rental-total small { font-size:.68rem; font-weight:800; }
.rod-rental-total strong { font-size:1.15rem; line-height:1.1; }
.rod-rental-total.is-zero { opacity:.65; }
.rod-rental-field { display:block; padding:12px 14px; border:1px solid #bbf7d0; border-radius:10px; background:#f0fdf4; }
.rod-rental-main { display:flex; align-items:center; justify-content:space-between; gap:14px; min-width:0; }
.rod-rental-field small { display:block; margin-top:8px; color:var(--muted); font-size:.78rem; line-height:1.45; }
.rod-rental-check { display:flex; align-items:center; gap:8px; margin:0; font-weight:900; font-size:1rem; white-space:nowrap; }
.rod-rental-check input { flex:none; width:auto !important; margin:0 !important; }
.rod-rental-count { display:flex; align-items:center; justify-content:flex-end; gap:6px; margin:0; white-space:nowrap; }
.rod-rental-count .rod-count-label { color:#475569; font-size:.8rem; font-weight:800; }
.rod-rental-count input { flex:none; width:76px !important; margin:0 !important; padding:9px 10px !important; text-align:center; }
.response-item { display:grid !important; grid-template-columns:58px minmax(0,1fr) auto auto !important; grid-template-areas:"status name counts actions" "status comment comment comment"; align-items:start !important; gap:8px 10px !important; }
.response-item>.status { grid-area:status; }
.member-name-expand { grid-area:name; min-width:0; }
.member-name-expand summary { display:block; min-width:0; list-style:none; cursor:pointer; font-weight:800; }
.member-name-expand summary::-webkit-details-marker { display:none; }
.member-name-expand summary span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.member-name-full { margin-top:4px; padding:7px 9px; border-radius:8px; background:#f8fafc; color:#334155; font-size:.9rem; overflow-wrap:anywhere; }
.response-counts { grid-area:counts; display:flex; align-items:center; gap:5px; white-space:nowrap; }
.response-actions { grid-area:actions; }
.response-comment { grid-area:comment; display:block; white-space:pre-wrap; overflow-wrap:anywhere; padding-top:2px; }
.rod-badge { padding:3px 7px; border-radius:999px; background:#ecfdf5; color:#047857; font-size:.75rem; font-weight:800; white-space:nowrap; }
@media (max-width:600px) {
  .attendance-summary { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
  .rod-rental-total { min-width:70px; padding:5px 8px; }
  .response-item { grid-template-columns:52px minmax(0,1fr) auto !important; grid-template-areas:"status name counts" "status actions actions" ". comment comment" !important; gap:7px 8px !important; }
  .response-counts { justify-content:flex-end; align-self:center; }
  .response-actions { justify-content:flex-start; margin-top:1px; }
  .response-comment { padding:7px 0 1px; border-top:1px dashed #e2e8f0; }
  .member-name-expand summary span { max-width:100%; }
  .rod-rental-field { padding:11px 12px; }
  .rod-rental-main { gap:10px; }
  .rod-rental-count .rod-count-label { display:none; }
  .rod-rental-count input { width:68px !important; }
  .backup-compact-summary { padding:12px; }
  .backup-collapsible-body { padding:0 12px 12px; }
}


/* Ver.1.44: balanced attendance summary and compact rental badge; admin NAS status is cached-only */
.attendance-summary {
  gap:8px;
  align-items:stretch;
}
.attendance-current,
.rod-rental-total,
.attendance-target,
.attendance-balance {
  min-height:48px;
  box-sizing:border-box;
  border-radius:11px;
}
.attendance-current {
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:8px 13px;
}
.attendance-current small {
  margin:0;
  font-size:.76rem;
  line-height:1;
}
.attendance-current strong {
  font-size:1.45rem;
}
.rod-rental-total {
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:0;
  padding:8px 13px;
  border:1px solid #bbf7d0;
  background:#ecfdf5;
  white-space:nowrap;
}
.rod-rental-total small {
  font-size:.76rem;
  line-height:1;
  font-weight:900;
}
.rod-rental-total strong {
  font-size:1.45rem;
  line-height:1;
}
.attendance-target,
.attendance-balance {
  justify-content:center;
  padding:8px 13px;
  font-size:.83rem;
}
@media (max-width:600px) {
  .attendance-summary {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    gap:7px;
  }
  .attendance-current,
  .rod-rental-total,
  .attendance-target,
  .attendance-balance {
    width:100%;
    min-height:46px;
  }
  .attendance-current,
  .rod-rental-total {
    justify-content:center;
  }
  .attendance-current small,
  .rod-rental-total small {
    font-size:.73rem;
  }
  .attendance-current strong,
  .rod-rental-total strong {
    font-size:1.28rem;
  }
  .attendance-target,
  .attendance-balance {
    text-align:center;
    font-size:.78rem;
  }
}

/* Ver.1.46: iPhone admin controls - compact, equal-width, and overflow-safe */
.mobile-label { display:none; }

.admin-list article {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:"info actions" "photos photos";
  align-items:center;
  gap:14px 18px;
  min-width:0;
  overflow:hidden;
}
.admin-list article>div:first-child { grid-area:info; min-width:0; }
.admin-list article>.admin-buttons { grid-area:actions; min-width:0; }
.admin-buttons form { margin:0; min-width:0; }

.admin-photo-link {
  grid-area:photos;
  display:grid;
  grid-template-columns:auto auto 1fr auto;
  align-items:center;
  gap:8px 12px;
  width:100%;
  min-width:0;
  padding:10px 12px;
  color:var(--navy);
  background:#f8fafc;
  border:1px solid #dbe5ec;
  border-radius:10px;
  font-weight:900;
  text-decoration:none;
  box-sizing:border-box;
}
.admin-photo-link strong { color:#0f3d5b; white-space:nowrap; }
.admin-photo-link small { color:var(--muted); font-weight:700; min-width:0; }
.admin-photo-arrow { color:var(--blue); font-size:1.45rem; line-height:1; }

.admin-photo-page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; margin-bottom:18px; }
.admin-photo-page-heading h1 { margin:2px 0 8px; color:var(--navy); }
.admin-photo-page-heading h2 { margin:2px 0; color:var(--navy); }
.admin-photo-page-card { padding:18px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:0 8px 24px #0f385410; }
.admin-photo-page-summary { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; margin-bottom:14px; padding:10px 12px; background:#f8fafc; border-radius:10px; color:var(--muted); font-size:.82rem; }
.admin-photo-page-summary strong { color:var(--navy); font-size:1rem; }
.admin-photo-page-summary form { margin:0 0 0 auto; }
.admin-photo-empty { padding:16px 2px; }

@media (max-width:600px) {
  html,body { max-width:100%; overflow-x:hidden; }
  .container { width:calc(100% - 20px); }
  .admin-heading { gap:12px; }
  .admin-top-actions { width:100%; }
  .admin-top-actions>a,.admin-top-actions form,.admin-top-actions button { width:100%; }
  .admin-list { width:100%; min-width:0; }

  .admin-list article {
    width:100%;
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:"info" "actions" "photos";
    align-items:stretch;
    gap:14px;
    padding:16px 14px;
    box-sizing:border-box;
  }
  .admin-list article>div:first-child { width:100%; overflow-wrap:anywhere; }

  .admin-buttons {
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
    width:100%;
    gap:8px;
  }
  .admin-buttons>* { width:100%; min-width:0; margin:0; }
  .admin-buttons form { display:block; height:100%; }
  .admin-buttons .button-link,
  .admin-buttons button {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
    min-width:0;
    min-height:48px;
    padding:8px 4px;
    box-sizing:border-box;
    border-radius:10px;
    font-size:.76rem;
    font-weight:900;
    line-height:1.15;
    white-space:nowrap;
    writing-mode:horizontal-tb;
    word-break:keep-all;
  }
  .admin-buttons button:disabled {
    opacity:1;
    color:#94a3b8;
    background:#f1f5f9;
    border-color:#dbe3ec;
    cursor:default;
  }
  .desktop-label { display:none !important; }
  .mobile-label { display:inline !important; white-space:nowrap; }

  .admin-photo-link {
    grid-template-columns:minmax(0,1fr) auto auto;
    grid-template-areas:"title count arrow" "size size arrow";
    gap:2px 8px;
    padding:11px 12px;
  }
  .admin-photo-link>span:first-child { grid-area:title; min-width:0; }
  .admin-photo-link strong { grid-area:count; font-size:.8rem; }
  .admin-photo-link small { grid-area:size; font-size:.72rem; }
  .admin-photo-arrow { grid-area:arrow; align-self:center; }

  .admin-photo-page-heading { align-items:stretch; flex-direction:column; }
  .admin-photo-page-heading .button-link { width:100%; }
  .admin-photo-page-card { padding:12px; }
  .admin-photo-page-summary { align-items:stretch; flex-direction:column; }
  .admin-photo-page-summary form { margin:4px 0 0; }
  .admin-photo-page-summary button { width:100%; }
  .admin-photo-page-list { width:100%; min-width:0; }
  .admin-photo-row {
    width:100%;
    grid-template-columns:64px minmax(0,1fr);
    gap:8px;
    padding:8px;
    overflow:hidden;
    box-sizing:border-box;
  }
  .admin-photo-thumb { width:64px; height:54px; }
  .admin-photo-info { min-width:0; overflow:hidden; }
  .admin-photo-info strong,.admin-photo-info span { max-width:100%; overflow:hidden; text-overflow:ellipsis; }
  .admin-photo-actions { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; max-width:none; gap:6px; }
  .admin-photo-actions>a,.admin-photo-actions form,.admin-photo-actions button { width:100%; min-width:0; }
  .admin-photo-actions>a,.admin-photo-actions button { display:flex; align-items:center; justify-content:center; min-height:36px; white-space:nowrap; }
}


/* Ver.1.47: show notice posting date in the collapsed title */
.notice-posted-date {
  flex:none;
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:2px 7px;
  color:#475569;
  background:#eaf1f5;
  border:1px solid #d7e2e8;
  border-radius:7px;
  font-size:.69rem;
  font-weight:800;
  line-height:1.2;
  white-space:nowrap;
}
.notice-compact.important .notice-posted-date {
  color:#9a3412;
  background:#ffedd5;
  border-color:#fed7aa;
}
.past-notice-title {
  display:flex;
  align-items:center;
  min-width:0;
  gap:7px;
}
.past-notice-title-text {
  min-width:0;
  overflow-wrap:anywhere;
}
@media (max-width:600px) {
  .notice-compact>summary {
    align-items:center;
    flex-wrap:wrap;
    column-gap:7px;
    row-gap:5px;
  }
  .notice-compact>summary strong {
    min-width:120px;
    flex:1 1 45%;
  }
  .notice-posted-date {
    padding:2px 6px;
    font-size:.66rem;
  }
  .past-notice-summary {
    align-items:flex-start;
  }
  .past-notice-title {
    flex-wrap:wrap;
  }
}

/* Ver.1.49: trip weather, wind and wave forecast */
.trip-date-weather-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; }
.weather-compact {
  display:inline-flex; align-items:center; gap:7px; max-width:100%; min-height:30px; padding:4px 9px;
  color:#0c4a6e; background:#f0f9ff; border:1px solid #bae6fd; border-radius:999px;
  font-size:.74rem; font-weight:900; line-height:1.2; text-decoration:none;
}
.weather-compact span,.weather-compact small { white-space:nowrap; }
.weather-compact small { color:#475569; font-size:.68rem; font-weight:800; }
.weather-compact-official { background:#ecfeff; border-color:#67e8f9; }
.weather-compact-ai { color:#713f12; background:#fffbeb; border-color:#fde68a; }
.weather-compact-ai small { color:#78716c; }

.weather-location-fields { padding:15px; border:1px solid #bae6fd; border-radius:12px; background:#f8fdff; }
.weather-location-fields legend { padding:0 6px; color:var(--navy); font-weight:900; }
.weather-location-fields>p { margin:0 0 10px; color:var(--muted); font-size:.84rem; }
.weather-coordinate-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.map-coordinate-button { width:auto; min-height:40px; }
.map-coordinate-status { margin:8px 0 2px !important; color:var(--muted); font-size:.76rem !important; }
.map-coordinate-status.success { color:#166534; font-weight:800; }
.map-coordinate-status.error { color:#b91c1c; font-weight:800; }

.admin-list article { grid-template-areas:"info actions" "weather weather" "photos photos"; }
.admin-weather-link {
  grid-area:weather; display:grid; grid-template-columns:auto auto 1fr auto; align-items:center; gap:8px 12px;
  width:100%; min-width:0; padding:10px 12px; color:#0c4a6e; background:#f0f9ff;
  border:1px solid #bae6fd; border-radius:10px; font-weight:900; text-decoration:none; box-sizing:border-box;
}
.admin-weather-link strong { color:#075985; white-space:nowrap; }
.admin-weather-link small { color:var(--muted); font-weight:700; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.weather-page { display:grid; gap:18px; }
.weather-page-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.weather-page-heading h1 { margin:2px 0 5px; color:var(--navy); }
.weather-page-heading h2 { margin:0; color:#334155; font-size:1.05rem; }
.weather-trip-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.weather-trip-meta>div { padding:11px 12px; background:#fff; border:1px solid var(--line); border-radius:11px; min-width:0; }
.weather-trip-meta small { display:block; margin-bottom:3px; color:var(--muted); font-size:.72rem; font-weight:800; }
.weather-trip-meta strong { display:block; overflow-wrap:anywhere; color:var(--navy); font-size:.9rem; }
.weather-update-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:12px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.weather-update-row form { margin:0; }
.weather-range-note { flex:1 1 280px; color:var(--muted); font-size:.8rem; }
.forecast-block { padding:18px; background:#fff; border:1px solid var(--line); border-radius:15px; box-shadow:0 7px 20px #0f38540d; }
.official-forecast-block { border-color:#a5f3fc; }
.ai-forecast-block { border-color:#fde68a; background:#fffdf7; }
.previous-ai-forecast { opacity:.92; }
.forecast-block-title { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:14px; }
.forecast-block-title>div { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.forecast-block-title h2 { margin:0; color:var(--navy); font-size:1.35rem; }
.forecast-block-title>small { color:var(--muted); white-space:nowrap; }
.forecast-kind-badge { display:inline-flex; align-items:center; min-height:27px; padding:3px 8px; border-radius:999px; font-size:.72rem; font-weight:900; }
.forecast-kind-badge.official { color:#075985; background:#cffafe; }
.forecast-kind-badge.ai { color:#92400e; background:#fef3c7; }
.forecast-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:9px; }
.forecast-summary-grid>div { padding:11px; background:#f8fafc; border-radius:10px; min-width:0; }
.ai-forecast-block .forecast-summary-grid>div { background:#fffbeb; }
.forecast-summary-grid small { display:block; color:var(--muted); font-size:.7rem; font-weight:800; }
.forecast-summary-grid strong { display:block; margin-top:2px; color:#0f3d5b; font-size:.96rem; overflow-wrap:anywhere; }
.weather-table-title { margin:19px 0 8px; color:var(--navy); font-size:1rem; }
.weather-table-wrap { width:100%; overflow-x:auto; border:1px solid #dbe5ec; border-radius:10px; }
.weather-hourly-table { width:100%; min-width:820px; border-collapse:collapse; background:#fff; font-size:.78rem; }
.weather-hourly-table th,.weather-hourly-table td { padding:8px 9px; border-bottom:1px solid #e2e8f0; text-align:left; white-space:nowrap; }
.weather-hourly-table th { background:#f1f5f9; color:#475569; font-size:.7rem; }
.weather-sources { margin-top:16px; padding:12px 13px; background:#f8fafc; border-radius:10px; color:#475569; font-size:.78rem; }
.weather-sources strong { color:var(--navy); }
.weather-sources p { margin:5px 0; }
.weather-sources a { color:var(--blue); }
.weather-sources small { color:var(--muted); }
.ai-weather-comment { margin-top:14px; padding:12px 13px; background:#fff7ed; border-left:4px solid #f59e0b; border-radius:8px; }
.ai-weather-comment p { margin:5px 0 0; white-space:pre-wrap; }
.weather-empty-box { padding:22px; text-align:center; background:#fff; border:1px dashed #94a3b8; border-radius:14px; }
.weather-empty-box h3 { margin:0 0 6px; color:var(--navy); }
.weather-empty-box p { margin:0 0 12px; color:var(--muted); }
.weather-disclaimer { margin:0; padding:10px 12px; color:#64748b; background:#f8fafc; border-radius:9px; font-size:.76rem; }

.ai-weather-admin-page h2 { margin-top:-2px; color:#475569; font-size:1rem; }
.ai-workflow-note { padding:11px 12px; background:#fffbeb; border:1px solid #fde68a; border-radius:10px; color:#713f12; }
.ai-prompt-card { margin:17px 0; padding:14px; background:#f8fafc; border:1px solid var(--line); border-radius:12px; }
.ai-prompt-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.ai-prompt-heading h3 { margin:0; color:var(--navy); }
.ai-prompt-text { width:100%; box-sizing:border-box; font:inherit; font-size:.82rem; line-height:1.5; }
.copy-status { min-height:1em; margin:6px 0 0; color:#166534; font-size:.76rem; font-weight:800; }
.ai-result-form { margin-top:18px; }

@media (max-width:600px) {
  .trip-date-weather-row { align-items:flex-start; flex-direction:column; gap:6px; }
  .weather-compact { width:100%; align-items:flex-start; flex-direction:column; gap:2px; border-radius:9px; box-sizing:border-box; }
  .weather-compact span,.weather-compact small { max-width:100%; white-space:normal; }
  .weather-coordinate-grid { grid-template-columns:1fr; }
  .map-coordinate-button { width:100%; }
  .admin-list article { grid-template-areas:"info" "actions" "weather" "photos"; }
  .admin-weather-link { grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"title arrow" "count arrow" "place arrow"; gap:2px 8px; padding:11px 12px; }
  .admin-weather-link>span:first-child { grid-area:title; }
  .admin-weather-link strong { grid-area:count; font-size:.8rem; }
  .admin-weather-link small { grid-area:place; font-size:.72rem; }
  .admin-weather-link .admin-photo-arrow { grid-area:arrow; }
  .weather-page-heading { align-items:stretch; flex-direction:column; }
  .weather-page-heading .button-link { width:100%; }
  .weather-trip-meta { grid-template-columns:1fr; }
  .weather-update-row { align-items:stretch; flex-direction:column; }
  .weather-update-row form,.weather-update-row button,.weather-update-row .button-link { width:100%; }
  .forecast-block { padding:14px; }
  .forecast-block-title { flex-direction:column; gap:5px; }
  .forecast-block-title>small { white-space:normal; }
  .forecast-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ai-prompt-heading { align-items:stretch; flex-direction:column; }
  .ai-prompt-heading button { width:100%; }
}

/* Ver.1.49 revised: make manually editable forecast coordinates unmistakable. */
.weather-coordinate-grid input { color:#0f172a !important; background:#fff !important; opacity:1 !important; -webkit-text-fill-color:#0f172a; }
.weather-coordinate-grid input::placeholder { color:#94a3b8; opacity:1; }
.weather-coordinate-confirm { width:auto; min-height:40px; margin-top:10px; }
.weather-coordinate-confirm-status { margin:7px 0 0; color:var(--muted); font-size:.76rem; }
.weather-coordinate-confirm-status.success { color:#166534; font-weight:800; }
.weather-coordinate-confirm-status.error { color:#b91c1c; font-weight:800; }

.weather-coordinate-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.weather-coordinate-actions .secondary{width:auto}.weather-coordinate-grid input{font-variant-numeric:tabular-nums}
@media(max-width:640px){.weather-coordinate-actions{display:grid;grid-template-columns:1fr}.weather-coordinate-actions .secondary{width:100%}}

/* Ver.1.49r3 coordinate inputs */
.weather-coordinate-grid input{width:100%;min-width:0;user-select:text;-webkit-user-select:text;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1rem;letter-spacing:.02em}

/* Ver.1.49r5: server-side coordinate form, no JavaScript parsing. */
.weather-coordinate-single { display:block; }
.weather-coordinate-single textarea {
  display:block !important;
  width:100% !important;
  min-height:58px;
  margin-top:6px;
  padding:13px 14px;
  box-sizing:border-box;
  color:#0f172a !important;
  background:#fff !important;
  opacity:1 !important;
  -webkit-text-fill-color:#0f172a !important;
  border:1px solid #9fb9c9;
  border-radius:10px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;
  font-size:1rem;
  font-weight:700;
  line-height:1.45;
  letter-spacing:.01em;
  resize:vertical;
  pointer-events:auto !important;
  user-select:text !important;
  -webkit-user-select:text !important;
  -webkit-appearance:none;
  appearance:none;
}
.weather-coordinate-single textarea:focus {
  outline:3px solid #7dd3fc88;
  border-color:var(--blue);
}
.weather-coordinate-actions-top { margin-bottom:4px; }
.weather-coordinate-server-status { margin:8px 0 3px; color:var(--muted); font-size:.8rem; font-weight:700; }
.weather-coordinate-server-status.success { color:#166534; }
.weather-coordinate-server-status.error { color:#b91c1c; }
@media(max-width:640px){
  .weather-coordinate-single textarea { min-height:64px; font-size:16px; }
}

/* Ver.1.49r5 final: unmistakable single editable coordinate field. */
.weather-coordinate-single textarea::placeholder {
  color:#94a3b8 !important;
  -webkit-text-fill-color:#94a3b8 !important;
  opacity:1;
  font-weight:600;
}
.weather-coordinate-actions-top .map-coordinate-button { min-height:48px; }
.weather-coordinate-server-status { padding:9px 11px; background:#f8fafc; border-radius:8px; }
.weather-coordinate-server-status.success { background:#ecfdf5; }
.weather-coordinate-server-status.error { background:#fef2f2; }


/* Ver.1.50r1: tide cycle, high/low tide and AI tide workflow */
.weather-compact { flex-wrap:wrap; border-radius:12px; }
.weather-compact .tide-compact-line {
  flex-basis:100%;
  width:100%;
  padding-top:3px;
  border-top:1px solid #cbd5e1;
  color:#0f766e;
  white-space:normal;
  line-height:1.35;
}
.weather-compact-ai .tide-compact-line { color:#92400e; border-top-color:#fde68a; }

.tide-panel {
  margin-top:18px;
  padding:16px;
  border:1px solid #99f6e4;
  border-radius:13px;
  background:linear-gradient(180deg,#f0fdfa 0,#f8fafc 100%);
}
.ai-tide-panel { border-color:#fcd34d; background:linear-gradient(180deg,#fffbeb 0,#fffdf7 100%); }
.tide-panel-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
.tide-panel-heading h3 { margin:1px 0 0; color:#134e4a; font-size:1.08rem; }
.ai-tide-panel .tide-panel-heading h3 { color:#78350f; }
.tide-reference-badge {
  flex:none;
  padding:4px 9px;
  border-radius:999px;
  color:#115e59;
  background:#ccfbf1;
  font-size:.7rem;
  font-weight:900;
}
.tide-summary-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.tide-summary-grid>div {
  min-width:0;
  padding:11px;
  border:1px solid #ccfbf1;
  border-radius:10px;
  background:#fff;
}
.ai-tide-panel .tide-summary-grid>div { border-color:#fde68a; background:#fffdf7; }
.tide-summary-grid small {
  display:block;
  color:#64748b;
  font-size:.7rem;
  font-weight:800;
}
.tide-summary-grid strong {
  display:block;
  margin-top:2px;
  color:#134e4a;
  font-size:.94rem;
  overflow-wrap:anywhere;
}
.ai-tide-panel .tide-summary-grid strong { color:#78350f; }
.tide-summary-grid span {
  display:block;
  margin-top:2px;
  color:#64748b;
  font-size:.68rem;
}
.tide-events {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(130px,1fr));
  gap:8px;
  margin-top:12px;
}
.tide-event {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:2px 8px;
  align-items:center;
  padding:9px 10px;
  border-radius:9px;
  background:#fff;
}
.tide-event span { color:#0f766e; font-size:.73rem; font-weight:900; }
.tide-event strong { color:#134e4a; font-size:1.02rem; }
.tide-event small { grid-column:1 / -1; color:#64748b; font-size:.67rem; }
.tide-event.low span { color:#0369a1; }
.tide-warning,.source-warning {
  margin:12px 0 0;
  padding:9px 11px;
  border-radius:8px;
  color:#92400e;
  background:#fffbeb;
  font-size:.76rem;
  font-weight:700;
}
.weather-hourly-table { min-width:980px; }

@media (max-width:600px) {
  .weather-compact .tide-compact-line { max-width:100%; white-space:normal; }
  .tide-panel { padding:13px; }
  .tide-panel-heading { flex-direction:column; gap:5px; }
  .tide-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tide-events { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:390px) {
  .tide-summary-grid,.tide-events { grid-template-columns:1fr; }
}

/* Ver.1.50r4 AI forecast archive / fun prediction */
.previous-ai-archive { margin-top: 18px; border: 1px solid #d8dde6; border-radius: 12px; padding: 0; background: #fafbfc; }
.previous-ai-archive > summary { cursor: pointer; font-weight: 700; padding: 14px 16px; }
.previous-ai-archive[open] > summary { border-bottom: 1px solid #e3e7ee; }
.ai-archive-note { margin: 12px 16px 0; font-size: .92rem; }
.ai-fun-forecast-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 16px 0; }
.ai-fun-card { border: 1px solid #d8dde6; border-radius: 12px; padding: 14px; background: #fff; display: flex; flex-direction: column; gap: 5px; }
.ai-fun-card small { font-weight: 700; }
.ai-fun-card strong { font-size: 1.15rem; overflow-wrap: anywhere; }
.ai-fun-card span { font-size: .82rem; opacity: .75; }
@media (max-width: 700px) { .ai-fun-forecast-grid { grid-template-columns: 1fr; } }


/* Ver.1.50r5: compact AI forecast summary */
.weather-compact-ai {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  width:min(100%, 820px);
  border-radius:12px;
  padding:7px 9px;
}
.weather-compact-ai .ai-summary-chip {
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-width:0;
  max-width:100%;
  padding:4px 7px;
  border-radius:8px;
  background:#fff;
  color:#713f12;
  font-size:.7rem;
  font-weight:800;
  line-height:1.25;
  white-space:normal;
  overflow-wrap:anywhere;
}
.weather-compact-ai .ai-summary-chip b {
  flex:none;
  color:#92400e;
  font-size:.68rem;
}
.weather-compact-ai .ai-summary-catch {
  flex:1 1 210px;
}
.weather-compact-ai .ai-summary-open {
  margin-left:auto;
  color:#92400e;
  font-size:.68rem;
  font-weight:900;
  white-space:nowrap;
}

.ai-key-summary-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.ai-key-card {
  min-width:0;
  padding:12px;
  border:1px solid #fde68a;
  border-radius:11px;
  background:#fff;
}
.ai-key-card small {
  display:block;
  margin-bottom:4px;
  color:#92400e;
  font-size:.72rem;
  font-weight:900;
}
.ai-key-card strong {
  display:block;
  color:#0f3d5b;
  font-size:.96rem;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.ai-key-catch strong {
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.ai-detail-toggle {
  margin-top:12px;
  border-top:1px solid #fde68a;
}
.ai-detail-toggle > summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
  padding:12px 2px 2px;
  color:#92400e;
  font-weight:900;
  list-style-position:inside;
}
.ai-detail-toggle > summary small {
  color:#78716c;
  font-size:.72rem;
  font-weight:700;
}
.ai-detail-body {
  padding-top:13px;
}

@media (max-width:700px) {
  .weather-compact-ai {
    width:100%;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    box-sizing:border-box;
  }
  .weather-compact-ai .ai-summary-chip {
    width:100%;
    box-sizing:border-box;
  }
  .weather-compact-ai .ai-summary-catch {
    grid-column:1 / -1;
  }
  .weather-compact-ai .ai-summary-open {
    grid-column:1 / -1;
    margin-left:0;
    text-align:right;
  }
  .ai-key-summary-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .ai-key-card {
    padding:10px;
  }
  .ai-key-card strong {
    font-size:.9rem;
  }
  .ai-detail-toggle > summary {
    align-items:flex-start;
    flex-direction:column;
    gap:2px;
  }
}

@media (max-width:420px) {
  .weather-compact-ai {
    gap:5px;
  }
  .weather-compact-ai .ai-summary-chip {
    font-size:.67rem;
    padding:4px 6px;
  }
  .ai-key-summary-grid {
    gap:7px;
  }
}


/* Ver.1.50r7: ultra-compact fun AI forecast summary */
.weather-compact-ai {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  column-gap:10px;
  row-gap:2px;
  width:min(100%, 520px);
  max-width:520px;
  padding:8px 10px;
  border-radius:11px;
  box-sizing:border-box;
}
.weather-compact-ai .ai-fun-title {
  grid-column:1;
  grid-row:1 / span 4;
  align-self:stretch;
  display:flex;
  align-items:center;
  justify-content:center;
  max-width:112px;
  padding:5px 8px;
  color:#92400e;
  background:#fef3c7;
  border-radius:8px;
  font-size:.72rem;
  font-weight:900;
  line-height:1.25;
  text-align:center;
  white-space:normal;
}
.weather-compact-ai .ai-fun-line {
  grid-column:2;
  display:block;
  min-width:0;
  max-width:100%;
  color:#57534e;
  font-size:.7rem;
  font-weight:800;
  line-height:1.3;
  white-space:normal;
  overflow-wrap:anywhere;
}
.weather-compact-ai .ai-summary-open {
  grid-column:2;
  margin:1px 0 0;
  color:#92400e;
  font-size:.66rem;
  font-weight:900;
  text-align:right;
  white-space:normal;
}
.ai-detail-direct {
  padding-top:0;
}
.ai-forecast-block:target {
  scroll-margin-top:84px;
}
@media (max-width:700px) {
  .weather-compact-ai {
    width:100%;
    max-width:100%;
    grid-template-columns:1fr;
    row-gap:3px;
  }
  .weather-compact-ai .ai-fun-title,
  .weather-compact-ai .ai-fun-line,
  .weather-compact-ai .ai-summary-open {
    grid-column:1;
  }
  .weather-compact-ai .ai-fun-title {
    grid-row:auto;
    max-width:none;
    justify-content:flex-start;
    padding:4px 7px;
    text-align:left;
  }
  .weather-compact-ai .ai-summary-open {
    text-align:left;
  }
}


/* Ver.1.50r8: stable trip header alignment across browser zoom levels */
.trip-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,320px);
  align-items:start;
  gap:18px 24px;
}
.trip-main-summary {
  min-width:0;
}
.trip-date-weather-row {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:start;
  gap:9px;
  width:100%;
  min-width:0;
}
.trip-date-weather-row .date {
  width:max-content;
  max-width:100%;
}
.trip-date-weather-row .weather-compact {
  width:100%;
  max-width:none;
  min-width:0;
  justify-self:stretch;
}
.attendance-summary {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  max-width:none;
  gap:8px;
  align-items:stretch;
}
.attendance-current,
.rod-rental-total,
.attendance-target,
.attendance-balance {
  width:100%;
  min-width:0;
  justify-content:center;
  text-align:center;
}
.weather-compact-ai .ai-fun-title {
  flex-direction:column;
  gap:3px;
  min-width:116px;
}
.weather-compact-ai .ai-fun-title strong {
  display:block;
  color:#92400e;
  font-size:.72rem;
  font-weight:900;
  line-height:1.25;
  text-align:center;
  white-space:normal;
}
.weather-compact-ai .ai-predicted-at {
  display:block;
  width:100%;
  padding-top:3px;
  border-top:1px solid #f5d98d;
  color:#a16207;
  font-size:.57rem;
  font-weight:800;
  line-height:1.3;
  text-align:center;
  white-space:normal;
}

@media (max-width:860px) {
  .trip-heading {
    grid-template-columns:minmax(0,1fr);
    gap:14px;
  }
  .attendance-summary {
    max-width:430px;
    justify-self:start;
  }
}

@media (max-width:600px) {
  .trip-heading {
    display:grid;
    grid-template-columns:minmax(0,1fr);
  }
  .attendance-summary {
    width:100%;
    max-width:none;
  }
  .weather-compact-ai .ai-fun-title {
    align-items:flex-start;
    min-width:0;
  }
  .weather-compact-ai .ai-fun-title strong {
    text-align:left;
  }
  .weather-compact-ai .ai-predicted-at {
    width:auto;
    padding-top:2px;
    border-top:0;
    text-align:left;
    font-size:.58rem;
  }
}


/* Ver.1.50r10: stronger date/title hierarchy and balanced summary row */
.trip-heading {
  display:block;
}

.trip-heading-labels {
  min-height:26px;
  margin-bottom:8px;
}

.trip-title-line {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 15px;
  margin:0 0 15px;
}

.trip-title-line .date {
  flex:none;
  margin:0;
  padding:6px 11px;
  border:1px solid #bae6fd;
  border-radius:10px;
  color:#075985;
  background:#f0f9ff;
  font-size:clamp(1.02rem,2vw,1.22rem);
  font-weight:900;
  line-height:1.2;
  letter-spacing:.01em;
  white-space:nowrap;
}

.trip-title-line h2 {
  margin:0;
  color:var(--navy);
  font-size:clamp(1.42rem,2.7vw,1.78rem);
  font-weight:900;
  line-height:1.2;
  letter-spacing:.01em;
}

.trip-summary-row {
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);
  align-items:stretch;
  gap:16px;
  width:100%;
}

.trip-summary-row .weather-compact {
  width:100%;
  max-width:none;
  min-width:0;
  min-height:104px;
  margin:0;
  box-sizing:border-box;
  justify-self:stretch;
}

.trip-summary-row .attendance-summary {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(48px,1fr));
  align-items:stretch;
  gap:8px;
  width:100%;
  max-width:none;
  min-width:0;
  height:100%;
  margin:0;
}

.trip-summary-row .attendance-current,
.trip-summary-row .rod-rental-total,
.trip-summary-row .attendance-target,
.trip-summary-row .attendance-balance {
  width:100%;
  min-width:0;
  min-height:48px;
  margin:0;
  justify-content:center;
  text-align:center;
  box-sizing:border-box;
}

.trip-summary-row .weather-compact-ai {
  display:grid;
  grid-template-columns:142px minmax(0,1fr);
  grid-template-rows:repeat(4,auto);
  align-content:center;
  align-items:center;
  column-gap:13px;
  row-gap:3px;
  padding:10px 12px;
  border-radius:13px;
}

.trip-summary-row .weather-compact-ai .ai-fun-title {
  grid-column:1;
  grid-row:1 / span 4;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:0;
  max-width:none;
  padding:8px 9px;
  background:#fef3c7;
  border-radius:9px;
}

.trip-summary-row .weather-compact-ai .ai-fun-title strong {
  font-size:.76rem;
  line-height:1.25;
  text-align:center;
}

.trip-summary-row .weather-compact-ai .ai-predicted-at {
  width:100%;
  padding-top:4px;
  border-top:1px solid #f5d98d;
  font-size:.58rem;
  line-height:1.3;
  text-align:center;
}

.trip-summary-row .weather-compact-ai .ai-fun-line {
  grid-column:2;
  font-size:.72rem;
  line-height:1.32;
}

.trip-summary-row .weather-compact-ai .ai-summary-open {
  grid-column:2;
  margin-top:1px;
  text-align:right;
  font-size:.67rem;
}

/* Medium width / browser zoom: keep each block intact, then stack cleanly. */
@media (max-width:920px) {
  .trip-summary-row {
    grid-template-columns:minmax(0,1fr);
    gap:11px;
  }

  .trip-summary-row .weather-compact {
    min-height:0;
  }

  .trip-summary-row .attendance-summary {
    max-width:520px;
  }
}

/* Phone: title/date remain prominent but wrap naturally. */
@media (max-width:600px) {
  .trip-heading-labels {
    margin-bottom:6px;
  }

  .trip-title-line {
    align-items:flex-start;
    flex-direction:column;
    gap:6px;
    margin-bottom:11px;
  }

  .trip-title-line .date {
    padding:5px 9px;
    font-size:1rem;
  }

  .trip-title-line h2 {
    font-size:1.42rem;
  }

  .trip-summary-row .attendance-summary {
    max-width:none;
  }

  .trip-summary-row .weather-compact-ai {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:auto;
    row-gap:3px;
  }

  .trip-summary-row .weather-compact-ai .ai-fun-title,
  .trip-summary-row .weather-compact-ai .ai-fun-line,
  .trip-summary-row .weather-compact-ai .ai-summary-open {
    grid-column:1;
  }

  .trip-summary-row .weather-compact-ai .ai-fun-title {
    grid-row:auto;
    align-items:flex-start;
    padding:5px 7px;
  }

  .trip-summary-row .weather-compact-ai .ai-fun-title strong,
  .trip-summary-row .weather-compact-ai .ai-predicted-at {
    text-align:left;
  }

  .trip-summary-row .weather-compact-ai .ai-predicted-at {
    width:auto;
    border-top:0;
    padding-top:0;
  }

  .trip-summary-row .weather-compact-ai .ai-summary-open {
    text-align:left;
  }
}

/* Ver.1.50r11: iPhone hourly forecast - replace wide horizontal table with stacked cards. */
@media (max-width:700px) {
  .weather-table-wrap {
    width:100%;
    max-width:100%;
    overflow:visible;
    border:0;
    border-radius:0;
    background:transparent;
  }

  .weather-hourly-table {
    display:block;
    width:100%;
    min-width:0;
    background:transparent;
    font-size:.82rem;
  }

  .weather-hourly-table thead {
    display:none;
  }

  .weather-hourly-table tbody {
    display:grid;
    gap:10px;
    width:100%;
  }

  .weather-hourly-table tr {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    min-width:0;
    padding:10px;
    border:1px solid #dbe5ec;
    border-radius:11px;
    background:#fff;
    box-shadow:0 3px 10px #0f385408;
  }

  .weather-hourly-table td {
    display:block;
    min-width:0;
    padding:6px 8px;
    border:0;
    white-space:normal;
    overflow-wrap:anywhere;
  }

  .weather-hourly-table td::before {
    content:attr(data-label);
    display:block;
    margin-bottom:1px;
    color:#64748b;
    font-size:.66rem;
    font-weight:800;
    line-height:1.25;
  }

  .weather-hourly-table td:first-child {
    grid-column:1 / -1;
    padding-bottom:8px;
    color:#0f3d5b;
    font-size:1.02rem;
    font-weight:900;
    border-bottom:1px solid #e2e8f0;
  }

  .weather-hourly-table td:first-child::before {
    display:inline;
    margin-right:7px;
  }
}

@media (max-width:390px) {
  .weather-hourly-table tr {
    grid-template-columns:1fr;
  }

  .weather-hourly-table td:first-child {
    grid-column:1;
  }
}

/* Ver.1.50r12: prominent trip organizer display */
.trip-organizer-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  margin: 0.45rem 0 0.65rem;
  padding: 0.5rem 0.85rem;
  border: 1px solid rgba(14, 116, 144, 0.22);
  border-radius: 999px;
  background: #ecfeff;
  color: #164e63;
  font-size: 1rem;
  line-height: 1.35;
  max-width: 100%;
  overflow-wrap: anywhere;
}
.trip-organizer-badge strong {
  color: #0f172a;
  font-size: 1.08em;
}
.weather-organizer-badge {
  margin-bottom: 0;
}
.admin-organizer-name,
.archive-organizer-name {
  margin: 0.25rem 0;
  color: #155e75;
}
@media (max-width: 700px) {
  .trip-organizer-badge {
    display: flex;
    width: fit-content;
    max-width: 100%;
    padding: 0.48rem 0.72rem;
    font-size: 0.98rem;
  }
}


/* Ver.1.50r18: photo ranking, viewer, comparison and replacement */
.trip-photo-link { position:relative; display:block; }
.photo-rank-badge {
  position:absolute; top:8px; left:8px; z-index:2;
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; padding:4px 8px; border-radius:999px;
  background:#082f49e8; color:#fff; font-size:.78rem; font-weight:900;
  box-shadow:0 2px 8px #0f172a33;
}
.photo-top-ranked { outline:2px solid #7dd3fc; outline-offset:-2px; }
.photo-view-button {
  display:inline-flex; align-items:center; justify-content:center;
  padding:7px 10px; border:1px solid #bae6fd; border-radius:8px;
  color:#075985; background:#f0f9ff; font-weight:800; text-decoration:none;
}
.photo-view-page { display:grid; gap:18px; }
.photo-view-heading {
  display:flex; align-items:flex-start; justify-content:space-between; gap:18px;
}
.photo-view-heading h1 { margin:3px 0 0; color:var(--navy); }
.photo-view-heading .date { margin:4px 0 0; color:var(--muted); }
.photo-view-rankline {
  display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:#fff;
}
.photo-state.permanent-candidate {
  display:inline-flex; padding:3px 8px; border-radius:999px;
  background:#ecfeff; color:#0e7490; font-weight:800; font-size:.8rem;
}
.photo-view-main {
  display:grid; grid-template-columns:88px minmax(0,1fr) 88px;
  gap:12px; align-items:stretch;
}
.photo-view-image-wrap {
  min-height:380px; display:flex; align-items:center; justify-content:center;
  background:#07111d; border-radius:16px; overflow:hidden;
}
.photo-view-image { display:block; max-width:100%; max-height:76vh; object-fit:contain; }
.photo-nav {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:4px; min-height:170px; padding:10px;
  border:1px solid #bae6fd; border-radius:14px; background:#f8fdff;
  color:#075985; text-decoration:none; font-size:2rem; font-weight:900;
}
.photo-nav span { font-size:.78rem; }
.photo-nav-disabled { opacity:.35; pointer-events:none; }
.photo-view-mobile-nav { display:none; justify-content:space-between; gap:12px; }
.photo-view-tools {
  display:grid; gap:18px; padding:18px;
  border:1px solid var(--line); border-radius:16px; background:#fff;
}
.photo-view-tools h2,.photo-view-tools h3 { margin:0; color:var(--navy); }
.photo-view-basic-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.photo-view-basic-actions form { margin:0; }
.photo-position-panel,.photo-swap-panel,.photo-replace-panel {
  display:grid; gap:12px; padding:16px; border:1px solid #dbeafe;
  border-radius:14px; background:#f8fbff;
}
.photo-position-panel p,.photo-swap-panel p,.photo-replace-panel p { margin:0; color:#475569; }
.photo-position-form { display:flex; flex-wrap:wrap; align-items:end; gap:10px; }
.photo-position-form label { min-width:160px; }
.photo-compare-grid {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;
}
.photo-compare-grid figure {
  margin:0; padding:10px; border:1px solid var(--line);
  border-radius:12px; background:#fff;
}
.photo-compare-grid figcaption { margin-bottom:8px; font-weight:800; color:#334155; }
.photo-compare-grid img {
  width:100%; height:320px; object-fit:contain; display:block;
  border-radius:9px; background:#0f172a;
}
.photo-swap-options {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px;
  max-height:390px; overflow:auto; padding:4px;
}
.photo-swap-option {
  position:relative; display:grid; gap:4px; padding:5px;
  border:1px solid var(--line); border-radius:9px; background:#fff; cursor:pointer;
}
.photo-swap-option input { position:absolute; top:8px; left:8px; z-index:2; }
.photo-swap-option img { width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:7px; }
.photo-swap-option span { text-align:center; font-size:.78rem; font-weight:800; }
.photo-swap-option:has(input:checked) { outline:3px solid #38bdf8; }
.photo-replace-form { display:grid; gap:12px; }
.photo-replace-form label { display:grid; gap:5px; }
.photo-danger-zone {
  border-top:1px solid #fee2e2; padding-top:12px;
}
.photo-danger-zone summary { color:var(--red); font-weight:800; cursor:pointer; }
.admin-photo-thumb { position:relative; }

@media (max-width:760px) {
  .photo-view-heading { display:grid; }
  .photo-view-main { grid-template-columns:1fr; }
  .photo-view-main > .photo-nav { display:none; }
  .photo-view-mobile-nav { display:flex; }
  .photo-view-image-wrap { min-height:260px; }
  .photo-view-image { max-height:64vh; }
  .photo-compare-grid { grid-template-columns:1fr; }
  .photo-compare-grid img { height:260px; }
  .photo-swap-options { grid-template-columns:repeat(3,minmax(0,1fr)); max-height:420px; }
}


/* Ver.1.50r19: photo organizer without rank overlays */
.photo-rank-badge { display:none !important; }
.photo-top-ranked { outline:none; }
.photo-grid {
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:10px;
}
.photo-gallery-zone {
  margin:14px 0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:13px;
}
.photo-gallery-retained { background:#f0fdf4; border-color:#bbf7d0; }
.photo-gallery-expiring { background:#fff7ed; border-color:#fed7aa; }
.photo-gallery-zone-heading {
  display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
  margin-bottom:8px;
}
.photo-gallery-zone-heading strong { color:var(--navy); }
.photo-gallery-zone-heading span { color:var(--muted); font-size:.78rem; }
.photo-retained-card { border-color:#bbf7d0; }
.photo-expiring-card { border-color:#fdba74; }
.photo-state.expiring {
  display:inline-flex; padding:3px 8px; border-radius:999px;
  background:#ffedd5; color:#9a3412; font-weight:800; font-size:.8rem;
}

.admin-photo-page-card { display:grid; gap:18px; }
.photo-reorder-guide {
  display:flex; align-items:center; flex-wrap:wrap; gap:10px;
  padding:12px 14px; border:1px solid #bae6fd; border-radius:12px; background:#f0f9ff;
}
.photo-reorder-guide strong { color:#075985; }
.photo-reorder-guide span { color:#475569; font-size:.86rem; }
.photo-zone {
  padding:14px; border:1px solid var(--line); border-radius:14px;
}
.photo-zone-retained { background:#f0fdf4; border-color:#bbf7d0; }
.photo-zone-expiring { background:#fff7ed; border-color:#fed7aa; }
.photo-zone-heading {
  display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  margin-bottom:12px;
}
.photo-zone-heading h3 { margin:0; color:var(--navy); }
.photo-zone-heading p { margin:3px 0 0; color:#64748b; font-size:.82rem; }
.photo-zone-heading>strong {
  flex:none; padding:4px 9px; border-radius:999px; background:#fff;
  border:1px solid #cbd5e1; color:#475569; font-size:.8rem;
}
.photo-organizer-grid {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px;
}
.photo-organizer-card {
  min-width:0; padding:6px; border:1px solid #dbe5ec; border-radius:11px; background:#fff;
  transition:box-shadow .15s ease, transform .15s ease, border-color .15s ease;
}
.photo-organizer-card.is-expiring { border-color:#fdba74; }
.photo-organizer-card.is-movable .photo-organizer-thumb { cursor:pointer; }
.photo-organizer-card.is-selected {
  border-color:#0284c7;
  box-shadow:0 0 0 3px #38bdf84d, 0 8px 18px #0f172a1a;
  transform:translateY(-2px);
}
.photo-organizer-thumb {
  display:block; width:100%; padding:0; border:0; border-radius:8px; overflow:hidden;
  aspect-ratio:4/3; background:#e2e8f0;
}
.photo-organizer-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.photo-organizer-meta { min-height:26px; padding:5px 2px 2px; }
.photo-organizer-actions {
  display:flex; align-items:center; flex-wrap:wrap; gap:5px; padding:3px 2px 2px;
}
.photo-organizer-actions>a,
.photo-organizer-actions summary {
  color:#075985; font-size:.72rem; font-weight:800; cursor:pointer; text-decoration:none;
}
.photo-organizer-actions details { position:relative; }
.photo-organizer-more {
  display:flex; flex-wrap:wrap; gap:6px; margin-top:5px; padding:8px;
  border:1px solid var(--line); border-radius:9px; background:#f8fafc;
  font-size:.7rem; color:#475569;
}
.photo-organizer-more span { width:100%; overflow-wrap:anywhere; }
.photo-organizer-more form { margin:0; }

.photo-view-statusline {
  display:flex; align-items:center; flex-wrap:wrap; gap:9px;
  padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:#fff;
}
.photo-position-panel { display:grid; gap:12px; }
.photo-destination-form { display:grid; gap:14px; }
.photo-destination-zone {
  display:grid; gap:6px; padding:12px; border:1px solid var(--line); border-radius:12px;
}
.photo-destination-zone.retained { background:#f0fdf4; border-color:#bbf7d0; }
.photo-destination-zone.expiring { background:#fff7ed; border-color:#fed7aa; }
.photo-destination-zone>strong { color:var(--navy); }
.photo-destination-zone>span { color:#64748b; font-size:.8rem; }
.photo-destination-grid {
  display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; margin-top:5px;
}
.photo-destination-card {
  position:relative; display:block; width:100%; padding:4px; border:1px solid #cbd5e1;
  border-radius:9px; background:#fff; cursor:pointer;
}
.photo-destination-card:hover { border-color:#0284c7; box-shadow:0 0 0 2px #38bdf833; }
.photo-destination-card.current { opacity:.55; cursor:default; }
.photo-destination-card img {
  display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:6px;
}
.photo-destination-card span {
  position:absolute; left:8px; bottom:8px; padding:2px 6px; border-radius:999px;
  background:#0f172acc; color:#fff; font-size:.65rem; font-weight:800;
}

@media (max-width: 700px) {
  .photo-grid,
  .photo-organizer-grid,
  .photo-destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .photo-zone-heading,
  .photo-gallery-zone-heading { display:block; }
  .photo-zone-heading>strong { display:inline-flex; margin-top:7px; }
}


/* Ver.1.50r20: simplify photo movement and enlarged-photo editing */
.photo-organizer-card.is-selected {
  position: relative;
  border-color:#0369a1;
  box-shadow:0 0 0 4px #38bdf866, 0 10px 22px #0f172a24;
}
.photo-organizer-card.is-selected::after {
  content:"移動する写真";
  position:absolute;
  top:10px;
  left:10px;
  z-index:4;
  padding:4px 8px;
  border-radius:999px;
  background:#0369a1;
  color:#fff;
  font-size:.72rem;
  font-weight:900;
  pointer-events:none;
}
.photo-organizer-thumb {
  position:relative;
  touch-action:manipulation;
}
.photo-organizer-card.is-movable .photo-organizer-thumb:hover {
  outline:3px solid #7dd3fc;
  outline-offset:-3px;
}
.photo-edit-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:5px 8px;
  border:1px solid #bae6fd;
  border-radius:8px;
  background:#f0f9ff;
}
.photo-reorder-guide {
  position:sticky;
  top:8px;
  z-index:10;
  box-shadow:0 6px 16px #0f172a12;
}

.photo-compare-swap-panel {
  display:grid;
  gap:12px;
  padding:16px;
  border:1px solid #bfdbfe;
  border-radius:14px;
  background:#f8fbff;
}
.photo-compare-swap-panel h2 { margin:0; color:var(--navy); font-size:1.15rem; }
.photo-compare-swap-panel p { margin:3px 0 0; color:#475569; }
.photo-compare-swap-panel .photo-compare-grid figure {
  display:grid;
  gap:8px;
}
.photo-compare-swap-panel .photo-state { justify-self:start; }
.photo-compare-candidate-nav {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:center;
}
.photo-compare-candidate-nav > :last-child { justify-self:end; }
.photo-compare-candidate-nav form { margin:0; }

.photo-crop-panel,
.photo-replace-panel {
  border:1px solid #dbeafe;
  border-radius:14px;
  background:#fff;
  overflow:hidden;
}
.photo-crop-panel > summary,
.photo-replace-panel > summary {
  padding:12px 14px;
  cursor:pointer;
  color:#075985;
  font-weight:900;
  background:#f8fbff;
}
.photo-crop-body,
.photo-replace-body {
  display:grid;
  gap:12px;
  padding:14px;
}
.photo-crop-body > p,
.photo-replace-body > p { margin:0; color:#475569; }
.photo-crop-stage {
  position:relative;
  width:min(100%,900px);
  margin:0 auto;
  background:#0f172a;
  overflow:hidden;
  border-radius:12px;
  cursor:crosshair;
  touch-action:none;
  user-select:none;
}
.photo-crop-stage img {
  display:block;
  width:100%;
  height:auto;
  max-height:none;
  pointer-events:none;
}
.photo-crop-selection {
  position:absolute;
  border:3px solid #38bdf8;
  background:#38bdf826;
  box-shadow:0 0 0 9999px #02061780;
  pointer-events:none;
}
.photo-crop-actions {
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:8px;
}
.photo-crop-actions button:disabled {
  opacity:.5;
  cursor:not-allowed;
}

@media (max-width:700px) {
  .photo-reorder-guide {
    top:4px;
    align-items:flex-start;
  }
  .photo-compare-candidate-nav {
    grid-template-columns:1fr 1fr;
  }
  .photo-compare-candidate-nav form {
    grid-column:1 / 3;
    grid-row:1;
  }
  .photo-compare-candidate-nav form .primary {
    width:100%;
  }
  .photo-compare-candidate-nav > :last-child { justify-self:stretch; text-align:center; }
  .photo-compare-candidate-nav > :first-child { justify-self:stretch; text-align:center; }
}


/* Ver.1.50r21: direct photo drag-and-drop on the normal trip gallery. */
.photo-gallery-body[data-photo-sort-board] .photo-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.photo-public-drag-guide {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 12px;
  margin:10px 0 14px;
  padding:10px 12px;
  border:1px solid #bae6fd;
  border-radius:11px;
  background:#f0f9ff;
}
.photo-public-drag-guide strong {
  color:#075985;
}
.photo-public-drag-guide span {
  color:#475569;
  font-size:.78rem;
}
.photo-sort-save-status[data-state="saving"],
.photo-sort-save-status[data-state="moving"] {
  color:#0369a1;
  font-weight:800;
}
.photo-sort-save-status[data-state="saved"] {
  color:#166534;
  font-weight:800;
}
.photo-sort-save-status[data-state="error"] {
  color:#b91c1c;
  font-weight:800;
}
.photo-sortable-card .trip-photo-link {
  cursor:grab;
  -webkit-user-drag:none;
  user-select:none;
  -webkit-user-select:none;
}
.photo-sortable-card .trip-photo-link:active {
  cursor:grabbing;
}
.photo-sortable-card .trip-photo-link img {
  -webkit-user-drag:none;
  user-select:none;
  -webkit-user-select:none;
}
.trip-photo-card.is-photo-drag-placeholder {
  opacity:.3;
  border-style:dashed;
  transform:scale(.985);
}
.is-photo-sort-active .trip-photo-card {
  transition:border-color .12s ease, background-color .12s ease, opacity .12s ease;
}
.photo-sort-ghost {
  position:fixed !important;
  z-index:10000;
  margin:0 !important;
  pointer-events:none !important;
  opacity:.94;
  transform:rotate(1deg) scale(1.02);
  box-shadow:0 16px 36px rgba(15,23,42,.28);
}
.photo-sort-ghost details,
.photo-sort-ghost .photo-edit-menu {
  display:none !important;
}
.photo-sort-ghost .trip-photo-link {
  cursor:grabbing !important;
}
@media (max-width:700px) {
  .photo-gallery-body[data-photo-sort-board] .photo-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .photo-public-drag-guide {
    align-items:flex-start;
    flex-direction:column;
  }
}


/* Ver.1.50r22: administrator-only, slower photo organizer. */
.admin-photo-sort-board .photo-organizer-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.admin-photo-sort-board [data-photo-sort-card] {
  transition:
    border-color .24s ease,
    box-shadow .24s ease,
    opacity .24s ease,
    background-color .24s ease;
}
.admin-photo-sort-board [data-photo-drag-handle] {
  cursor: grab;
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
  touch-action: pan-y;
}
.admin-photo-sort-board [data-photo-drag-handle]:active {
  cursor: grabbing;
}
.admin-photo-sort-board [data-photo-drag-handle] img {
  -webkit-user-drag: none;
  user-select: none;
  -webkit-user-select: none;
  pointer-events: none;
}
.admin-photo-sort-board [data-photo-sort-card].is-photo-drag-placeholder {
  opacity: .28;
  border-style: dashed;
  box-shadow: inset 0 0 0 2px #38bdf855;
}
.admin-photo-sort-board.is-photo-sort-active [data-photo-sort-card] {
  will-change: transform;
}
.admin-photo-sort-board.is-photo-sort-saving [data-photo-drag-handle] {
  cursor: wait;
}
.admin-photo-sort-board.is-photo-sort-saving {
  position: relative;
}
.admin-photo-sort-board.has-photo-sort-conflict .photo-reorder-guide {
  border-color: #fecaca;
  background: #fff1f2;
}
.photo-sort-save-status[data-state="saving"],
.photo-sort-save-status[data-state="moving"] {
  color: #0369a1;
  font-weight: 900;
}
.photo-sort-save-status[data-state="saved"] {
  color: #166534;
  font-weight: 900;
}
.photo-sort-save-status[data-state="error"] {
  color: #b91c1c;
  font-weight: 900;
}
.admin-photo-sort-board .photo-sort-ghost {
  position: fixed !important;
  z-index: 10000;
  margin: 0 !important;
  pointer-events: none !important;
  opacity: .93;
  transform: rotate(.6deg) scale(1.025);
  box-shadow: 0 18px 42px rgba(15, 23, 42, .32);
}
.admin-photo-sort-board .photo-sort-ghost details,
.admin-photo-sort-board .photo-sort-ghost .photo-organizer-actions {
  display: none !important;
}

/* The ghost is appended to body, so keep these rules unscoped as well. */
.photo-sort-ghost {
  position: fixed !important;
  z-index: 10000;
  margin: 0 !important;
  pointer-events: none !important;
  opacity: .93;
  transform: rotate(.6deg) scale(1.025);
  box-shadow: 0 18px 42px rgba(15, 23, 42, .32);
}
.photo-sort-ghost .photo-organizer-actions,
.photo-sort-ghost details {
  display: none !important;
}

@media (max-width: 700px) {
  .admin-photo-sort-board .photo-organizer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .admin-photo-sort-board .photo-reorder-guide {
    position: static;
    align-items: flex-start;
    flex-direction: column;
  }
}


/* Ver.1.50r24: KMA club icons */
.brand {
  display:inline-flex;
  align-items:center;
  gap:9px;
}
.brand-logo {
  width:36px;
  height:36px;
  border-radius:50%;
  object-fit:cover;
  flex:none;
}
.page-title-with-icon {
  display:flex;
  align-items:center;
  gap:18px;
}
.page-title-with-icon h1 {
  margin:4px 0 5px;
}
.page-title-with-icon p {
  margin:0;
  color:#475569;
}
.page-title-icon {
  width:92px;
  height:92px;
  border-radius:24px;
  object-fit:cover;
  flex:none;
  box-shadow:0 10px 26px #082f4926;
}
.club-icon-gallery {
  margin:0 0 28px;
  padding:20px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:18px;
  box-shadow:0 8px 24px #0f385410;
}
.club-icon-gallery-heading h2 {
  margin:3px 0 5px;
  color:var(--navy);
}
.club-icon-gallery-heading p:last-child {
  margin:0;
  color:#475569;
}
.club-icon-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:16px;
}
.club-icon-card {
  display:flex;
  align-items:center;
  gap:15px;
  margin:0;
  padding:15px;
  background:#f8fafc;
  border:1px solid var(--line);
  border-radius:16px;
}
.club-icon-image {
  width:96px;
  height:96px;
  border-radius:24px;
  object-fit:cover;
  flex:none;
  box-shadow:0 8px 20px #082f4920;
}
.club-icon-card figcaption {
  display:flex;
  flex-direction:column;
  gap:5px;
}
.club-icon-card figcaption strong {
  color:var(--navy);
  font-size:1rem;
}
.club-icon-card figcaption span {
  color:#475569;
  font-size:.9rem;
}
@media (max-width:700px) {
  .brand-logo {
    width:32px;
    height:32px;
  }
  .page-title-with-icon {
    align-items:flex-start;
    gap:13px;
  }
  .page-title-icon {
    width:74px;
    height:74px;
    border-radius:19px;
  }
  .club-icon-gallery {
    padding:16px;
  }
  .club-icon-grid {
    grid-template-columns:1fr;
  }
  .club-icon-image {
    width:82px;
    height:82px;
    border-radius:21px;
  }
}


/* Ver.1.50r25 - simplify icon placement */
.brand {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.brand-home-link {
  color: white;
  text-decoration: none;
  font-weight: 800;
  font-size: 1.05rem;
}
.brand-icon-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  line-height: 0;
}
.brand-logo {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
  box-shadow: 0 4px 12px rgba(8, 47, 73, 0.35);
}
.page-intro {
  margin-bottom: 25px;
}
.page-intro h1 {
  font-size: clamp(1.9rem, 5vw, 2.7rem);
  line-height: 1.2;
  margin: 4px 0;
  color: var(--navy);
}
.club-icon-strip {
  margin-top: 28px;
  padding-top: 4px;
}
.club-icon-strip-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.club-icon-strip-image {
  width: 74px;
  height: 74px;
  border-radius: 20px;
  object-fit: cover;
  box-shadow: 0 8px 20px rgba(8, 47, 73, 0.16);
}
.image-lightbox[hidden] {
  display: none !important;
}
.image-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(2, 6, 23, 0.76);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.image-lightbox-panel {
  position: relative;
  max-width: min(92vw, 680px);
  max-height: 92vh;
}
.image-lightbox-image {
  display: block;
  max-width: 100%;
  max-height: 88vh;
  width: auto;
  height: auto;
  border-radius: 28px;
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.45);
}
.image-lightbox-close {
  position: absolute;
  top: -14px;
  right: -14px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: #0f172a;
  font-size: 1.5rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.25);
}
body.lightbox-open {
  overflow: hidden;
}
@media (max-width: 700px) {
  .brand {
    gap: 10px;
  }
  .brand-logo {
    width: 36px;
    height: 36px;
  }
  .brand-home-link {
    font-size: 1rem;
  }
  .club-icon-strip {
    margin-top: 24px;
  }
  .club-icon-strip-inner {
    gap: 14px;
  }
  .club-icon-strip-image {
    width: 62px;
    height: 62px;
    border-radius: 16px;
  }
  .image-lightbox {
    padding: 16px;
  }
  .image-lightbox-image {
    border-radius: 20px;
  }
}


/* Ver.1.50r26 - compact header + CSP-safe emblem enlargement */
.site-header {
  gap: 12px;
}
.brand {
  flex: 0 0 auto;
  gap: 0;
}
.brand-icon-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  text-decoration: none;
  cursor: zoom-in;
  line-height: 0;
}
.brand-logo {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
  box-shadow: 0 4px 12px rgba(8, 47, 73, 0.35);
}
.header-actions {
  margin-left: auto;
  flex-wrap: nowrap;
}
.header-actions > a,
.header-actions .link-button {
  white-space: nowrap;
}

/* Override the r25 JS-controlled lightbox. This works without inline JavaScript. */
.image-lightbox {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: transparent;
}
.image-lightbox:target {
  display: flex;
}
.image-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, 0.78);
}
.image-lightbox-panel {
  position: relative;
  z-index: 1;
  max-width: min(92vw, 720px);
  max-height: 92vh;
}
.image-lightbox-image {
  display: block;
  width: min(82vw, 680px);
  max-width: 100%;
  max-height: 86vh;
  height: auto;
  border-radius: 28px;
  box-shadow: 0 18px 50px rgba(15, 23, 42, 0.48);
}
.image-lightbox-close {
  position: absolute;
  top: -14px;
  right: -14px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.98);
  color: #0f172a;
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.28);
}

@media (max-width: 600px) {
  .site-header {
    height: 58px;
    padding-left: 10px;
    padding-right: 10px;
    gap: 6px;
  }
  .brand {
    flex: 0 0 auto;
  }
  .brand-logo {
    width: 36px;
    height: 36px;
  }
  .header-actions {
    gap: 2px;
    margin-left: auto;
  }
  .header-actions > a,
  .header-actions .link-button {
    padding: 6px 4px;
    font-size: .72rem;
  }
  .image-lightbox {
    padding: 14px;
  }
  .image-lightbox-image {
    width: min(88vw, 560px);
    border-radius: 20px;
  }
  .image-lightbox-close {
    top: -10px;
    right: -10px;
    width: 38px;
    height: 38px;
  }
}

/* Ver.1.51r11: account directory visibility + stable account-management layout */
.account-directory-heading {
  align-items: flex-start;
}
.account-directory-summary {
  margin-bottom: 18px;
}
.account-list .account-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 310px);
  grid-template-areas:
    "account-info account-actions"
    "account-password account-password";
  align-items: start;
  gap: 16px 22px;
  min-width: 0;
  overflow: visible;
}
.account-list .account-card > .account-card-info {
  grid-area: account-info;
  width: 100%;
  min-width: 0;
}
.account-card-actions {
  grid-area: account-actions;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
  min-width: 0;
}
.account-card-actions form {
  flex: 1 1 132px;
  min-width: 0;
  margin: 0;
}
.account-card-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 9px 10px;
  box-sizing: border-box;
  line-height: 1.25;
  white-space: normal;
  text-align: center;
}
.account-card-password-reset {
  grid-area: account-password;
  width: 100%;
  min-width: 0;
  margin: 0;
}
.account-card-view-only {
  grid-area: account-actions;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 6px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f8fafc;
  color: #64748b;
  font-size: .78rem;
  font-weight: 800;
  white-space: nowrap;
}
.account-directory-footer {
  margin-top: 22px;
}

@media (max-width: 760px) {
  .account-list .account-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "account-info"
      "account-actions"
      "account-password";
    align-items: stretch;
    gap: 14px;
  }
  .account-card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }
  .account-card-actions form,
  .account-card-actions button {
    width: 100%;
  }
  .account-card-view-only {
    justify-self: start;
  }
}

@media (max-width: 480px) {
  .account-card-actions {
    grid-template-columns: minmax(0, 1fr);
  }
  .account-card-actions button {
    min-height: 46px;
  }
}
/* Ver.1.51r14a: form readability and responsive layout review
   - Keep comment text entry full-width on desktop and mobile.
   - Prevent account-link guidance from squeezing the comment field.
   - Give short comment fields a practical touch target/typing height.
   - Make long names, badges, dates, comments, and URLs wrap safely.
*/
.comment-form {
  display: grid;
  grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
  align-items: end;
  gap: 12px 16px;
  margin: 12px 0;
  padding: 16px;
}
.comment-form > label:first-of-type {
  grid-column: 1;
  min-width: 0;
}
.comment-form > .backup-note {
  grid-column: 2;
  align-self: center;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.comment-form > label:last-of-type {
  grid-column: 1 / -1;
  min-width: 0;
}
.comment-form textarea {
  width: 100%;
  min-height: 132px;
  line-height: 1.55;
}
.comment-form > button {
  grid-column: 1 / -1;
  justify-self: start;
  min-width: 190px;
  min-height: 46px;
}
.comment-list li > div {
  flex: 1 1 auto;
  min-width: 0;
}
.comment-list li > form {
  flex: none;
}
.comment-list strong,
.comment-list p,
.comment-list time {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.comment-list p {
  max-width: 100%;
}
.rsvp-form textarea,
.edit-rsvp-form textarea {
  min-height: 94px;
  line-height: 1.5;
}
.notice-compose textarea {
  min-height: 112px;
  line-height: 1.5;
}
.form-actions {
  flex-wrap: wrap;
}
.account-card-info,
.account-card-info p,
.account-card-info dd,
.account-card-info dt {
  min-width: 0;
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .comment-form {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    padding: 14px;
  }
  .comment-form > label:first-of-type,
  .comment-form > .backup-note,
  .comment-form > label:last-of-type,
  .comment-form > button {
    grid-column: 1;
  }
  .comment-form > button {
    justify-self: stretch;
    width: 100%;
  }
  .comment-form textarea {
    min-height: 124px;
  }
}
@media (max-width: 600px) {
  .rsvp-form textarea,
  .edit-rsvp-form textarea {
    min-height: 100px;
  }
  .notice-compose textarea {
    min-height: 120px;
  }
  .comment-list li {
    align-items: flex-start;
  }
  .comment-list time {
    display: block;
    margin: 4px 0 0;
  }
  .form-actions > button,
  .form-actions > .button-link {
    width: 100%;
  }
}

/* Ver.1.51r17: security audit log and overflow-safe admin action rows */
.admin-top-actions { flex-wrap:wrap; justify-content:flex-end; }

.audit-list {
  display:grid;
  gap:12px;
}
.audit-entry {
  min-width:0;
  padding:16px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:14px;
  box-shadow:0 6px 20px #0f38540d;
}
.audit-entry-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-bottom:11px;
  border-bottom:1px solid #e2e8f0;
}
.audit-entry-head>div {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px 10px;
  min-width:0;
}
.audit-entry-head time {
  color:var(--muted);
  font-size:.8rem;
  font-weight:700;
}
.audit-code {
  max-width:100%;
  padding:3px 7px;
  color:#64748b;
  background:#f8fafc;
  border-radius:7px;
  font-size:.7rem;
  overflow-wrap:anywhere;
}
.audit-entry-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-top:12px;
}
.audit-cell {
  min-width:0;
  padding:11px 12px;
  background:#f8fafc;
  border-radius:9px;
  overflow-wrap:anywhere;
}
.audit-cell strong,
.audit-cell small {
  display:block;
}
.audit-cell strong {
  color:var(--navy);
}
.audit-cell small {
  margin-top:3px;
  color:var(--muted);
  font-size:.75rem;
}
.audit-label {
  display:block;
  margin-bottom:5px;
  color:#64748b;
  font-size:.7rem;
  font-weight:900;
  letter-spacing:.04em;
}
.audit-details {
  margin-top:10px;
  padding:10px 12px;
  border-left:3px solid #7dd3fc;
  background:#f0f9ff;
  border-radius:8px;
  overflow-wrap:anywhere;
}
.audit-details p {
  margin:0;
  white-space:pre-wrap;
}
@media (max-width:700px) {
  .audit-entry {
    padding:13px;
  }
  .audit-entry-head {
    align-items:stretch;
    flex-direction:column;
  }
  .audit-code {
    align-self:flex-start;
  }
  .audit-entry-grid {
    grid-template-columns:1fr;
  }
  .admin-top-actions {
    justify-content:flex-start;
  }
}



/* Ver.1.51r20: H3 homepage media MVP */
.homepage-media-section {
  margin: 22px 0 28px;
  padding: 18px;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 18px;
}
.homepage-media-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.homepage-media-heading h2 {
  margin: 2px 0 0;
}
.homepage-media-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
  gap: 16px;
}
.homepage-media-card {
  min-width: 0;
  overflow: hidden;
  background: #fff;
  border: 1px solid #dbe7ef;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(15, 56, 84, 0.08);
}
.homepage-media-card > img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  background: #e2e8f0;
}
.homepage-media-copy {
  padding: 14px 15px 16px;
}
.homepage-media-copy h3 {
  margin: 0;
  color: var(--navy);
  overflow-wrap: anywhere;
}
.homepage-media-copy p {
  margin: 8px 0 0;
  color: #475569;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.homepage-media-missing {
  display: grid;
  place-items: center;
  min-height: 180px;
  padding: 16px;
  background: #f1f5f9;
  color: #64748b;
  text-align: center;
  font-weight: 800;
}

.homepage-media-upload-panel {
  overflow: hidden;
}
.homepage-media-form,
.homepage-media-edit-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
}
.homepage-media-form label,
.homepage-media-edit-form label {
  min-width: 0;
}
.homepage-media-form input[type="file"],
.homepage-media-form input[type="text"],
.homepage-media-form input[type="number"],
.homepage-media-form textarea,
.homepage-media-edit-form input[type="text"],
.homepage-media-edit-form input[type="number"],
.homepage-media-edit-form textarea {
  width: 100%;
  box-sizing: border-box;
}
.homepage-media-caption-field {
  grid-column: 1 / -1;
}
.homepage-media-publish-check {
  display: flex !important;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
}
.homepage-media-publish-check input {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}
.homepage-media-form > button,
.homepage-media-edit-form > button {
  justify-self: start;
  min-width: 180px;
}

.homepage-media-admin-list {
  display: grid;
  gap: 18px;
}
.homepage-media-admin-card {
  display: grid;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
  gap: 18px;
  min-width: 0;
  padding: 16px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 16px;
}
.homepage-media-admin-card.is-unpublished {
  background: #f8fafc;
}
.homepage-media-admin-preview {
  min-width: 0;
}
.homepage-media-admin-preview img {
  display: block;
  width: 100%;
  max-height: 300px;
  object-fit: contain;
  background: #e2e8f0;
  border-radius: 12px;
}
.homepage-media-admin-meta {
  min-width: 0;
}
.homepage-media-status-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px 10px;
  margin-bottom: 12px;
  color: #64748b;
  font-size: .78rem;
  font-weight: 800;
}
.homepage-media-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 9px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
}
.homepage-media-status.is-published {
  background: #dcfce7;
  color: #166534;
}
.homepage-media-delete-form {
  margin-top: 12px;
}
.homepage-media-delete-form button {
  min-height: 42px;
}
.homepage-media-file-detail {
  margin-top: 14px;
}
.homepage-media-file-detail summary {
  cursor: pointer;
  font-weight: 800;
}
.homepage-media-file-detail dl {
  margin: 10px 0 0;
}
.homepage-media-file-detail dl > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid #e2e8f0;
}
.homepage-media-file-detail dt {
  color: #64748b;
  font-size: .78rem;
  font-weight: 800;
}
.homepage-media-file-detail dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.homepage-media-readonly h3 {
  margin-top: 0;
}
.homepage-media-readonly p {
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

@media (max-width: 760px) {
  .homepage-media-section {
    padding: 14px;
    border-radius: 14px;
  }
  .homepage-media-grid {
    grid-template-columns: 1fr;
  }
  .homepage-media-card > img {
    aspect-ratio: 16 / 10;
  }
  .homepage-media-form,
  .homepage-media-edit-form,
  .homepage-media-admin-card {
    grid-template-columns: 1fr;
  }
  .homepage-media-caption-field {
    grid-column: 1;
  }
  .homepage-media-form > button,
  .homepage-media-edit-form > button,
  .homepage-media-delete-form button {
    width: 100%;
    justify-self: stretch;
  }
  .homepage-media-file-detail dl > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}

@media (max-width: 480px) {
  .homepage-media-section {
    margin-left: -4px;
    margin-right: -4px;
    padding: 12px;
  }
  .homepage-media-copy {
    padding: 12px 13px 14px;
  }
  .homepage-media-admin-card {
    padding: 12px;
  }
}


/* Ver.1.51r22: H4 homepage media mobile workflow */
.homepage-media-page-heading {
  align-items: flex-start;
}
.homepage-media-file-field {
  grid-column: 1 / -1;
}
.homepage-media-file-field input[type="file"] {
  display: block;
  width: 100%;
  margin-top: 6px;
  padding: 12px;
  border: 1px dashed #7dd3fc;
  border-radius: 12px;
  background: #f8fafc;
  font: inherit;
}
.homepage-media-file-field small,
.homepage-media-form label small {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-size: .78rem;
}
.homepage-media-local-preview {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 144px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 12px;
  border: 1px solid #bae6fd;
  border-radius: 14px;
  background: #f0f9ff;
}
.homepage-media-local-preview[hidden] {
  display: none;
}
.homepage-media-local-preview img {
  display: block;
  width: 144px;
  height: 108px;
  object-fit: cover;
  border-radius: 10px;
  background: #e2e8f0;
}
.homepage-media-local-preview strong,
.homepage-media-local-preview span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.homepage-media-local-preview span {
  margin-top: 5px;
  color: #64748b;
  font-size: .82rem;
}
.homepage-media-upload-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.homepage-media-upload-actions .homepage-media-upload-button {
  min-width: 180px;
}
.homepage-media-validation {
  flex: 1 1 260px;
  min-height: 1.4em;
  margin: 0;
  color: #475569;
  font-size: .86rem;
  font-weight: 700;
}
.homepage-media-validation.is-error {
  color: #b91c1c;
}
.homepage-media-validation.is-ok {
  color: #166534;
}
.homepage-media-upload-progress {
  grid-column: 1 / -1;
  padding: 12px 14px;
  border: 1px solid #bae6fd;
  border-radius: 12px;
  background: #f0f9ff;
}
.homepage-media-upload-progress[hidden] {
  display: none;
}
.homepage-media-progress-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}
.homepage-media-upload-progress progress {
  display: block;
  width: 100%;
  height: 16px;
  margin-top: 8px;
}
.homepage-media-upload-progress p {
  margin: 7px 0 0;
  color: #475569;
  overflow-wrap: anywhere;
}
.homepage-media-position {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 9px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
}
.homepage-media-reorder {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 0 0 14px;
}
.homepage-media-reorder > span {
  margin-right: 2px;
  color: #475569;
  font-size: .82rem;
  font-weight: 800;
}
.homepage-media-reorder form {
  margin: 0;
}
.homepage-media-order-button {
  min-height: 40px;
  padding: 8px 13px;
}
.homepage-media-order-button:disabled {
  opacity: .42;
  cursor: not-allowed;
}
.homepage-media-admin-preview img {
  aspect-ratio: 4 / 3;
  max-height: none;
  object-fit: cover;
}
.homepage-media-admin-card {
  scroll-margin-top: 16px;
}
.homepage-media-list-panel {
  overflow: hidden;
}

@media (max-width: 760px) {
  .homepage-media-page-heading {
    gap: 14px;
  }
  .homepage-media-page-heading .admin-top-actions {
    width: 100%;
  }
  .homepage-media-page-heading .admin-top-actions .button-link {
    flex: 1 1 140px;
    text-align: center;
  }
  .homepage-media-local-preview {
    grid-template-columns: 104px minmax(0, 1fr);
  }
  .homepage-media-local-preview img {
    width: 104px;
    height: 78px;
  }
  .homepage-media-upload-actions {
    align-items: stretch;
  }
  .homepage-media-upload-actions .homepage-media-upload-button {
    width: 100%;
  }
  .homepage-media-validation {
    flex-basis: 100%;
  }
  .homepage-media-admin-card {
    gap: 14px;
  }
  .homepage-media-admin-preview {
    width: min(100%, 420px);
    margin: 0 auto;
  }
  .homepage-media-reorder {
    display: grid;
    grid-template-columns: auto 1fr 1fr;
    align-items: center;
  }
  .homepage-media-reorder form,
  .homepage-media-order-button {
    width: 100%;
  }
  .homepage-media-edit-form {
    gap: 12px;
  }
}

@media (max-width: 480px) {
  .homepage-media-file-field input[type="file"] {
    padding: 10px;
    font-size: .9rem;
  }
  .homepage-media-local-preview {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
  }
  .homepage-media-local-preview img {
    width: 88px;
    height: 66px;
  }
  .homepage-media-status-row {
    gap: 6px;
  }
  .homepage-media-reorder {
    grid-template-columns: 1fr 1fr;
  }
  .homepage-media-reorder > span {
    grid-column: 1 / -1;
  }
}


/* Ver.1.51r23: H5 optional multi-image homepage upload */
.homepage-media-batch-panel {
  margin-top: 18px;
  border-top: 1px solid #dbeafe;
  padding-top: 14px;
}
.homepage-media-batch-panel > summary {
  cursor: pointer;
  width: fit-content;
  color: #075985;
  font-weight: 900;
}
.homepage-media-batch-body {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #bae6fd;
  border-radius: 14px;
  background: #f8fafc;
}
.homepage-media-batch-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
  margin-top: 12px;
}
.homepage-media-batch-form .homepage-media-file-field,
.homepage-media-batch-form .homepage-media-caption-field,
.homepage-media-batch-form .homepage-media-upload-actions,
.homepage-media-batch-form .homepage-media-upload-progress,
.homepage-media-batch-selection {
  grid-column: 1 / -1;
}
.homepage-media-batch-form textarea {
  width: 100%;
  box-sizing: border-box;
}
.homepage-media-batch-selection {
  padding: 12px 14px;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: #fff;
}
.homepage-media-batch-selection[hidden] {
  display: none;
}
.homepage-media-batch-selection > strong {
  display: block;
  margin-bottom: 8px;
}
.homepage-media-batch-selection ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.homepage-media-batch-selection li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  padding: 7px 0;
  border-top: 1px solid #e2e8f0;
  font-size: .84rem;
}
.homepage-media-batch-selection li:first-child {
  border-top: 0;
}
.homepage-media-batch-selection li span:first-child {
  min-width: 0;
  overflow-wrap: anywhere;
}
.homepage-media-batch-selection li span:last-child {
  flex: 0 0 auto;
  color: #64748b;
}
.homepage-media-batch-selection li.is-error {
  color: #b91c1c;
  font-weight: 700;
}
.homepage-media-batch-upload-button {
  min-width: 180px;
}

@media (max-width: 760px) {
  .homepage-media-batch-body {
    padding: 12px;
  }
  .homepage-media-batch-form {
    grid-template-columns: 1fr;
  }
  .homepage-media-batch-form .homepage-media-publish-check {
    grid-column: 1;
  }
  .homepage-media-batch-upload-button {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .homepage-media-batch-selection li {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
  }
}


/* Ver.1.51r27: member profile / organizer assignment */
.profile-trip-picker {
  margin-top: 18px;
  padding-top: 4px;
}
.profile-trip-picker > legend {
  margin-bottom: 5px;
  color: var(--navy);
  font-size: 1rem;
  font-weight: 900;
}
.profile-trip-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  max-height: 420px;
  overflow-y: auto;
  padding: 2px;
}
.profile-trip-option {
  align-items: flex-start;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fafc;
  cursor: pointer;
}
.profile-trip-option input {
  flex: none;
  margin-top: 3px;
}
.profile-trip-option span {
  min-width: 0;
  overflow-wrap: anywhere;
  font-weight: 600;
}
.profile-trip-option strong {
  display: inline-block;
  margin-right: 6px;
  color: var(--navy);
}
.profile-trip-option small {
  color: var(--muted);
}
.account-card-actions > .account-profile-edit {
  flex: 1 1 132px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 44px;
  box-sizing: border-box;
  text-align: center;
  white-space: normal;
}
@media (max-width: 760px) {
  .profile-trip-list {
    max-height: none;
  }
  .account-card-actions > .account-profile-edit {
    width: 100%;
  }
}


/* Ver.1.51r28: member directory / public member profile */
.member-directory-heading {
  margin-bottom: 18px;
}
.member-directory-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.member-directory-card {
  display: block;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}
.member-directory-card:hover,
.member-directory-card:focus-visible {
  border-color: #7dd3fc;
  box-shadow: 0 10px 28px rgba(2, 132, 199, .12);
}
.member-directory-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}
.member-directory-card-head h2 {
  margin: 0;
  color: var(--navy);
  font-size: 1.15rem;
}
.member-directory-card-head span {
  flex: 0 0 auto;
  color: #0369a1;
  font-size: .82rem;
  font-weight: 800;
}
.member-directory-meta,
.member-profile-meta {
  display: grid;
  gap: 0;
  margin: 0;
}
.member-directory-meta > div,
.member-profile-meta > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 12px;
  padding: 9px 0;
  border-top: 1px solid #e2e8f0;
}
.member-directory-meta > div:first-child,
.member-profile-meta > div:first-child {
  border-top: 0;
}
.member-directory-meta dt,
.member-profile-meta dt {
  color: #64748b;
  font-size: .82rem;
  font-weight: 900;
}
.member-directory-meta dd,
.member-profile-meta dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.member-directory-trips dd {
  display: grid;
  gap: 3px;
}
.member-directory-trips dd span {
  display: block;
}
.member-directory-back {
  margin-top: 18px;
}
.member-public-profile {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.member-public-profile > h1 {
  margin-bottom: 18px;
}
.member-profile-trip-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.member-profile-trip-list a {
  display: grid;
  grid-template-columns: minmax(96px, auto) minmax(0, 1fr);
  gap: 10px;
  align-items: baseline;
  padding: 10px 12px;
  border: 1px solid #bae6fd;
  border-radius: 10px;
  background: #f0f9ff;
  color: var(--navy);
  text-decoration: none;
}
.member-profile-trip-list a:hover,
.member-profile-trip-list a:focus-visible {
  border-color: #38bdf8;
  background: #e0f2fe;
}
.member-profile-trip-list strong {
  white-space: nowrap;
}
.member-profile-trip-list span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.member-profile-actions {
  margin-top: 22px;
  flex-wrap: wrap;
}

@media (max-width: 760px) {
  .member-directory-card {
    padding: 14px;
    border-radius: 14px;
  }
  .member-directory-card-head {
    display: grid;
    gap: 5px;
  }
  .member-directory-card-head span {
    justify-self: start;
  }
  .member-directory-meta > div,
  .member-profile-meta > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .member-profile-trip-list a {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .member-profile-actions .button-link {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }
}

/* Ver.1.51r28a: roster-style member directory + profile permission clarity */
.member-directory-table-wrap {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .05);
}
.member-directory-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.member-directory-table th,
.member-directory-table td {
  padding: 12px 14px;
  border-bottom: 1px solid #e2e8f0;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}
.member-directory-table th {
  color: #475569;
  background: #f8fafc;
  font-size: .82rem;
  font-weight: 900;
  white-space: nowrap;
}
.member-directory-table th:nth-child(1),
.member-directory-table td:nth-child(1) { width: 14%; }
.member-directory-table th:nth-child(2),
.member-directory-table td:nth-child(2) { width: 20%; }
.member-directory-table th:nth-child(3),
.member-directory-table td:nth-child(3) { width: 25%; }
.member-directory-table th:nth-child(4),
.member-directory-table td:nth-child(4) { width: 41%; }
.member-directory-table tbody tr:last-child td {
  border-bottom: 0;
}
.member-directory-table tbody tr:hover {
  background: #f8fcff;
}
.member-directory-table .member-directory-chief {
  background: #fff9e8;
}
.member-directory-table .member-directory-chief:hover {
  background: #fff4cf;
}
.member-directory-name {
  color: var(--navy);
  font-weight: 900;
  text-decoration: underline;
  text-decoration-color: #7dd3fc;
  text-underline-offset: 3px;
}
.member-directory-name:hover,
.member-directory-name:focus-visible {
  color: var(--blue);
}
.member-directory-trip-cell {
  display: grid;
  gap: 3px;
}
.member-directory-trip-cell span {
  display: block;
}
.profile-readonly-field {
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  border: 1px solid #dbe6ed;
  border-radius: 10px;
  background: #f8fafc;
}
.profile-readonly-label {
  color: #475569;
  font-size: .9rem;
  font-weight: 800;
}
.profile-readonly-field strong {
  color: var(--navy);
  font-size: 1rem;
}
.profile-readonly-field small {
  color: var(--muted);
  font-weight: 400;
}

@media (max-width: 760px) {
  .member-directory-table th,
  .member-directory-table td {
    padding: 9px 7px;
    font-size: .78rem;
    line-height: 1.45;
  }
  .member-directory-table th {
    font-size: .72rem;
  }
  .member-directory-table th:nth-child(1),
  .member-directory-table td:nth-child(1) { width: 15%; }
  .member-directory-table th:nth-child(2),
  .member-directory-table td:nth-child(2) { width: 20%; }
  .member-directory-table th:nth-child(3),
  .member-directory-table td:nth-child(3) { width: 25%; }
  .member-directory-table th:nth-child(4),
  .member-directory-table td:nth-child(4) { width: 40%; }
}

@media (max-width: 430px) {
  .member-directory-table th,
  .member-directory-table td {
    padding: 8px 5px;
    font-size: .7rem;
  }
  .member-directory-table th {
    font-size: .66rem;
    letter-spacing: -.02em;
  }
  .member-directory-name {
    font-size: .76rem;
  }
}



/* 1.51r28b: compact member roster. Keep assignments on a single line and
   reserve only about four Japanese characters for the CLUB-position column. */
.member-directory-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.member-directory-table {
  table-layout: auto;
  min-width: 720px;
}
.member-directory-table th,
.member-directory-table td {
  overflow-wrap: normal;
}
.member-directory-table th:nth-child(1),
.member-directory-table td:nth-child(1) {
  width: 4.8em;
  min-width: 4.8em;
  max-width: 4.8em;
  white-space: nowrap;
}
.member-directory-table th:nth-child(2),
.member-directory-table td:nth-child(2) {
  width: 10em;
  min-width: 8em;
}
.member-directory-table th:nth-child(3),
.member-directory-table td:nth-child(3) {
  width: 13em;
  min-width: 10em;
}
.member-directory-table th:nth-child(4),
.member-directory-table td:nth-child(4) {
  width: auto;
}
.member-directory-trip-cell {
  display: table-cell;
  white-space: nowrap;
}
.member-directory-trip-cell span {
  display: inline;
  white-space: nowrap;
}
.member-directory-trip-cell span + span::before {
  content: " / ";
  color: var(--muted);
}
@media (max-width: 760px) {
  .member-directory-table {
    min-width: 680px;
  }
  .member-directory-table th:nth-child(1),
  .member-directory-table td:nth-child(1) {
    width: 4.8em;
    min-width: 4.8em;
    max-width: 4.8em;
  }
  .member-directory-table th:nth-child(2),
  .member-directory-table td:nth-child(2) {
    width: 9em;
    min-width: 8em;
  }
  .member-directory-table th:nth-child(3),
  .member-directory-table td:nth-child(3) {
    width: 12em;
    min-width: 10em;
  }
  .member-directory-table th:nth-child(4),
  .member-directory-table td:nth-child(4) {
    width: auto;
  }
}


/* 1.51r28c: account-owned frequent RSVP name presets */
.frequent-participant-list {
  display: grid;
  gap: 12px;
  margin: 14px 0 20px;
}
.frequent-participant-row {
  display: flex;
  gap: 10px;
  align-items: end;
  padding: 12px;
  border: 1px solid #dbe7ef;
  border-radius: 12px;
  background: #f8fbfd;
}
.frequent-participant-edit {
  display: flex;
  gap: 10px;
  align-items: end;
  flex: 1;
}
.frequent-participant-edit label {
  flex: 1;
  margin: 0;
}
.frequent-participant-row .inline-delete {
  margin: 0;
}
.rsvp-name-preset-field select {
  width: 100%;
}
@media (max-width: 700px) {
  .frequent-participant-row,
  .frequent-participant-edit {
    align-items: stretch;
    flex-direction: column;
  }
  .frequent-participant-row .inline-delete button,
  .frequent-participant-edit button {
    width: 100%;
  }
}


/* 1.51r31: account-creation credential recording and first-login confirmation */
.credential-record-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #bae6fd;
  border-radius: 12px;
  background: #f0f9ff;
  cursor: pointer;
}
.credential-record-check input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  flex: 0 0 auto;
}
.credential-record-check span {
  min-width: 0;
  font-weight: 800;
}
.credential-record-check small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-weight: 400;
}
.account-registration-complete {
  max-width: 720px;
}
.credential-save-warning,
.account-login-verification-note {
  margin: 16px 0;
  padding: 13px 14px;
  border: 1px solid #fbbf24;
  border-radius: 12px;
  background: #fffbeb;
}
.credential-save-warning p,
.account-login-verification-note p {
  margin: 5px 0 0;
}
.issued-credential-list {
  display: grid;
  gap: 16px;
  margin: 20px 0 12px;
}
.issued-credential {
  display: grid;
  gap: 6px;
}
.issued-credential > label {
  color: var(--navy);
  font-weight: 900;
}
.issued-credential-copy-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}
.issued-credential-copy-row input {
  min-width: 0;
  width: 100%;
  box-sizing: border-box;
  padding: 11px 12px;
  border: 1px solid #b9cbd6;
  border-radius: 9px;
  background: #f8fafc;
  font: inherit;
  font-weight: 800;
  letter-spacing: .03em;
}
.issued-credential small {
  color: var(--muted);
}
.copy-status {
  min-height: 1.4em;
  margin: 6px 0 12px;
  color: #166534;
  font-weight: 800;
}
.account-registration-relogin-form {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}
.account-registration-relogin-form > .primary {
  width: 100%;
}
@media (max-width: 560px) {
  .issued-credential-copy-row {
    grid-template-columns: 1fr;
  }
  .issued-credential-copy-row .secondary {
    width: 100%;
  }
}

/* ========================================================================
   KMA FISHING CLUB 1.52r1 - Common Layout Foundation
   Shared navigation / role identity / mobile tap targets / reusable UI base.
   ======================================================================== */

.site-header {
  height: auto;
  min-height: 68px;
  padding: 0;
  background: var(--navy);
}

.site-header-inner {
  width: min(1120px, calc(100% - 28px));
  min-height: 68px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 8px 0;
}

.site-header .brand {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 9px;
}

.site-header .brand-icon-link {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 13px;
}

.site-header .brand-icon-link:focus-visible,
.primary-nav-link:focus-visible,
.legacy-admin-link:focus-visible,
.header-logout-button:focus-visible {
  outline: 3px solid #7dd3fc;
  outline-offset: 2px;
}

.site-header .brand-logo {
  width: 42px;
  height: 42px;
  object-fit: contain;
}

.brand-wordmark {
  min-width: 0;
  display: grid;
  color: #fff;
  text-decoration: none;
  line-height: 1.15;
}

.brand-wordmark strong {
  font-size: .88rem;
  letter-spacing: .02em;
  white-space: nowrap;
}

.brand-wordmark span {
  margin-top: 3px;
  color: #bae6fd;
  font-size: .68rem;
  font-weight: 700;
  white-space: nowrap;
}

.primary-nav {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
}

.primary-nav-link {
  min-height: 44px;
  padding: 10px 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 11px;
  color: #e0f2fe;
  text-decoration: none;
  font-size: .9rem;
  font-weight: 800;
  white-space: nowrap;
}

.primary-nav-link:hover {
  background: #ffffff14;
  color: #fff;
}

.primary-nav-link.is-active {
  color: #082f49;
  background: #f0f9ff;
  border-color: #bae6fd;
  box-shadow: 0 3px 12px #082f4930;
}

.primary-nav-admin:not(.is-active) {
  color: #fef3c7;
}

.session-tools {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.session-identity {
  min-width: 0;
  display: grid;
  justify-items: end;
  gap: 3px;
}

.session-name {
  max-width: 160px;
  overflow: hidden;
  color: #e0f2fe;
  font-size: .72rem;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-role-badge {
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  padding: 2px 8px;
  border: 1px solid #ffffff3b;
  border-radius: 999px;
  color: #fff;
  background: #ffffff17;
  font-size: .67rem;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
}

.account-role-admin {
  color: #fef3c7;
  border-color: #fcd34d80;
  background: #92400e55;
}

.account-role-viewer {
  color: #dbeafe;
  border-color: #93c5fd70;
  background: #1d4ed855;
}

.legacy-admin-link {
  min-height: 40px;
  padding: 8px 6px;
  display: inline-flex;
  align-items: center;
  color: #bae6fd;
  font-size: .7rem;
  font-weight: 700;
  text-decoration: underline;
  white-space: nowrap;
}

.header-logout-form {
  margin: 0;
}

.header-logout-button {
  min-height: 44px;
  min-width: 44px;
  padding: 9px 7px;
  color: #dff4ff;
  font-size: .76rem;
  font-weight: 800;
}

.flash.info {
  color: #075985;
  background: #e0f2fe;
  border: 1px solid #bae6fd;
}

.flash a {
  color: inherit;
  font-weight: 900;
}

/* Reusable 1.52 UI primitives. Existing templates keep their current classes;
   later 1.52 revisions can adopt these without creating role-specific markup. */
.ui-card {
  padding: clamp(18px, 4vw, 28px);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 10px 30px #0f385414;
}

.ui-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.ui-button {
  min-height: 44px;
  padding: 10px 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.ui-form-grid {
  display: grid;
  gap: 14px;
}

.ui-form-grid input,
.ui-form-grid select,
.ui-form-grid textarea {
  min-height: 44px;
}

@media (max-width: 900px) {
  .site-header-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 12px;
    padding: 7px 0 9px;
  }

  .primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    padding: 2px 0 1px;
  }

  .primary-nav::-webkit-scrollbar {
    display: none;
  }

  .primary-nav-link {
    flex: 0 0 auto;
  }

  .session-name {
    max-width: 135px;
  }
}

@media (max-width: 600px) {
  .site-header {
    min-height: 0;
  }

  .site-header-inner {
    width: min(100% - 20px, 1120px);
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 6px 0 8px;
  }

  .site-header .brand {
    font-size: inherit;
  }

  .site-header .brand-icon-link {
    width: 42px;
    height: 42px;
  }

  .site-header .brand-logo {
    width: 38px;
    height: 38px;
  }

  .brand-wordmark strong {
    font-size: .78rem;
  }

  .brand-wordmark span {
    display: none;
  }

  .primary-nav {
    gap: 3px;
  }

  .primary-nav-link {
    min-height: 44px;
    padding: 9px 12px;
    font-size: .82rem;
  }

  .session-tools {
    gap: 4px;
  }

  .session-identity {
    display: none;
  }

  .legacy-admin-link {
    display: none;
  }

  .header-logout-button {
    font-size: .72rem;
    padding-inline: 5px;
  }

  .container {
    width: min(100% - 22px, 1040px);
  }
}

@media (max-width: 380px) {
  .brand-wordmark {
    display: none;
  }

  .primary-nav-link {
    padding-inline: 11px;
  }
}


/* ==========================================================================
   1.52r2 - Home Redesign
   Summary-first home screen. Detailed trip forms remain on focused trip views.
   ========================================================================== */

.home-intro {
  margin-bottom: 18px;
}

.home-intro h1 {
  margin-bottom: 6px;
}

.home-intro > p:last-child {
  max-width: 720px;
}

.home-dashboard {
  display: grid;
  gap: 18px;
}

.home-primary-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}

.home-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 15px;
}

.home-card-heading h2 {
  margin: 2px 0 0;
  color: var(--navy);
  font-size: clamp(1.25rem, 3vw, 1.55rem);
  line-height: 1.35;
}

.home-heading-link {
  flex: none;
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  color: var(--blue);
  font-size: .82rem;
  font-weight: 900;
  text-decoration: none;
}

.home-heading-link:hover {
  text-decoration: underline;
}

.home-heading-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.home-heading-meta > span {
  padding: 3px 9px;
  color: var(--muted);
  background: #f1f5f9;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
}

.home-next-trip-card {
  border-color: #bae6fd;
  background:
    linear-gradient(145deg, #f0f9ff 0, #fff 48%),
    var(--paper);
}

.home-previous-trip-card {
  border-color: #dbe6ed;
  background: #fff;
}

.home-previous-trip-main {
  display: grid;
  gap: 10px;
}

.home-previous-trip-main h3 {
  margin: -3px 0 0;
  color: var(--navy);
  font-size: clamp(1.15rem, 3.5vw, 1.5rem);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.home-previous-trip-target,
.home-previous-trip-note {
  margin: 0;
  color: #475569;
  font-size: .86rem;
  line-height: 1.55;
}

.home-previous-trip-target strong {
  color: var(--navy);
}

.home-trip-main {
  display: grid;
  gap: 11px;
}

.home-trip-date {
  margin: 0;
  color: var(--blue);
  font-weight: 900;
  letter-spacing: .02em;
}

.home-trip-main h3 {
  margin: -3px 0 0;
  color: var(--navy);
  font-size: clamp(1.35rem, 4vw, 1.9rem);
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.home-trip-organizer {
  margin: -3px 0 0;
  color: #475569;
  font-size: .9rem;
}

.home-trip-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.home-trip-stats > span {
  min-width: 82px;
  padding: 8px 11px;
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  border: 1px solid #dbeafe;
  border-radius: 11px;
  background: #fff;
}

.home-trip-stats small {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
}

.home-trip-stats strong {
  color: var(--navy);
  font-size: 1.05rem;
}

.home-own-rsvp {
  min-height: 48px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 11px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  color: #475569;
  font-size: .88rem;
}

.home-own-rsvp-label {
  margin-right: 2px;
  color: var(--navy);
  font-weight: 900;
}

.home-rsvp-unanswered {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 2px 8px;
  border-radius: 999px;
  color: #9a3412;
  background: #ffedd5;
  font-size: .78rem;
  font-weight: 900;
}

.home-weather-link {
  min-height: 46px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid #bae6fd;
  border-radius: 11px;
  color: #075985;
  background: #f0f9ff;
  font-weight: 900;
  text-decoration: none;
}

.home-weather-link small {
  color: #475569;
  font-weight: 700;
  text-align: right;
}

.home-primary-action {
  width: fit-content;
  margin-top: 2px;
  color: #fff;
  background: var(--blue);
  border: 1px solid var(--blue);
}

.home-primary-action:hover {
  background: #075985;
}

.home-shortcuts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.home-shortcuts > a {
  min-height: 112px;
  padding: 13px;
  display: grid;
  align-content: start;
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: 13px;
  color: var(--ink);
  background: #f8fafc;
  text-decoration: none;
}

.home-shortcuts > a:hover {
  border-color: #7dd3fc;
  background: #f0f9ff;
}

.home-shortcuts > a > span {
  font-size: 1.25rem;
  line-height: 1.2;
}

.home-shortcuts strong {
  color: var(--navy);
  font-size: .95rem;
}

.home-shortcuts small {
  color: var(--muted);
  font-size: .74rem;
  line-height: 1.45;
}

.home-notices-card {
  scroll-margin-top: 14px;
}

.home-notice-list {
  display: grid;
  gap: 8px;
}

.home-notice-item {
  border: 1px solid #dbe6ed;
  border-left: 4px solid #94a3b8;
  border-radius: 10px;
  background: #f8fafc;
  overflow: hidden;
}

.home-notice-item.important {
  border-left-color: #f97316;
  background: #fff7ed;
}

.home-notice-item > summary {
  min-height: 48px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  list-style: none;
  cursor: pointer;
}

.home-notice-item > summary::-webkit-details-marker {
  display: none;
}

.home-notice-item > summary::after {
  content: "＋";
  flex: none;
  color: var(--blue);
  font-weight: 900;
}

.home-notice-item[open] > summary::after {
  content: "−";
}

.home-notice-summary-main {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.home-notice-summary-main strong {
  color: var(--navy);
  overflow-wrap: anywhere;
}

.home-notice-item > summary time {
  margin-left: auto;
  color: var(--muted);
  font-size: .73rem;
  font-weight: 700;
  white-space: nowrap;
}

.home-notice-body {
  padding: 0 12px 12px;
}

.home-notice-body > p {
  margin: 3px 0 9px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.home-notice-compose {
  margin-top: 13px;
}

.home-upcoming-list {
  display: grid;
  gap: 9px;
}

.home-upcoming-list article {
  min-height: 78px;
  padding: 12px 14px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafc;
}

.home-upcoming-list time {
  color: var(--blue);
  font-size: .78rem;
  font-weight: 900;
}

.home-upcoming-list h3 {
  margin: 2px 0;
  color: var(--navy);
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.home-upcoming-list p {
  margin: 0;
  color: var(--muted);
  font-size: .78rem;
}

.home-upcoming-status {
  display: flex;
  align-items: center;
  gap: 8px;
}

.home-upcoming-status > a {
  min-height: 40px;
  padding: 8px 12px;
  display: inline-flex;
  align-items: center;
  border-radius: 9px;
  color: #fff;
  background: var(--blue);
  font-size: .8rem;
  font-weight: 900;
  text-decoration: none;
}

.home-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.home-photo-item {
  min-width: 0;
  display: grid;
  gap: 6px;
  color: var(--navy);
  font-size: .75rem;
  font-weight: 800;
  text-decoration: none;
}

.home-photo-item img {
  width: 100%;
  aspect-ratio: 4 / 3;
  display: block;
  object-fit: cover;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #e2e8f0;
}

.home-photo-item:hover img {
  border-color: #38bdf8;
}

.home-photo-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-empty-state,
.home-empty-note {
  color: var(--muted);
}

.home-empty-state {
  padding: 16px;
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  background: #f8fafc;
}

.home-empty-state strong {
  color: var(--navy);
}

.home-empty-state p,
.home-empty-note {
  margin: 6px 0 0;
}

@media (max-width: 820px) {
  .home-primary-grid {
    grid-template-columns: 1fr;
  }

  .home-shortcuts {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .home-shortcuts > a {
    min-height: 96px;
  }
}

@media (max-width: 620px) {
  .home-dashboard {
    gap: 13px;
  }

  .home-primary-grid {
    gap: 13px;
  }

  .home-card-heading {
    margin-bottom: 12px;
  }

  .home-heading-meta {
    align-items: flex-end;
    flex-direction: column;
    gap: 2px;
  }

  .home-shortcuts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-shortcuts > a {
    min-height: 104px;
  }

  .home-weather-link {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .home-weather-link small {
    text-align: left;
  }

  .home-primary-action {
    width: 100%;
  }

  .home-notice-item > summary {
    align-items: flex-start;
    flex-wrap: wrap;
  }

  .home-notice-summary-main {
    width: calc(100% - 28px);
  }

  .home-notice-item > summary time {
    order: 3;
    width: 100%;
    margin-left: 0;
  }

  .home-upcoming-list article {
    grid-template-columns: 1fr;
  }

  .home-upcoming-status {
    justify-content: space-between;
  }

  .home-photo-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 380px) {
  .home-trip-stats > span {
    min-width: 0;
    flex: 1 1 30%;
  }

  .home-shortcuts > a {
    min-height: 98px;
    padding: 11px;
  }
}


/* ==========================================================================
   1.52r3 - Trip Experience Unification
   Remove the redundant home quick-access card and add the shared Member/Admin
   trip-detail editing path.
   ========================================================================== */

.home-primary-grid {
  grid-template-columns: minmax(0, 1fr);
}

.trip-detail-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}

.trip-detail-edit-button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.trip-detail-edit-card {
  max-width: 760px;
}

.trip-edit-context {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin: 14px 0 8px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #f8fafc;
}

.trip-edit-context strong {
  color: var(--navy);
  overflow-wrap: anywhere;
}

.trip-edit-context span {
  color: var(--muted);
  font-weight: 700;
  white-space: nowrap;
}

.trip-edit-help {
  margin: 0 0 18px;
  color: #475569;
  line-height: 1.7;
}

.trip-detail-edit-actions {
  flex-wrap: wrap;
}

.trip-edit-admin-note {
  display: grid;
  gap: 5px;
  margin-top: 22px;
  padding: 13px 14px;
  border: 1px solid #bae6fd;
  border-radius: 11px;
  background: #f0f9ff;
}

.trip-edit-admin-note strong {
  color: var(--navy);
}

.trip-edit-admin-note span {
  color: #475569;
  line-height: 1.6;
}

.trip-edit-admin-note a {
  color: var(--blue);
  font-weight: 800;
}

@media (max-width: 640px) {
  .trip-detail-actions {
    justify-content: stretch;
  }

  .trip-detail-edit-button {
    width: 100%;
  }

  .trip-edit-context {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .trip-edit-context span {
    white-space: normal;
  }

  .trip-detail-edit-actions {
    align-items: stretch;
    flex-direction: column-reverse;
  }

  .trip-detail-edit-actions > * {
    width: 100%;
  }
}


/* Ver.1.52r5: Admin Center reorganization
   - normal trip content editing stays in the shared Member/Admin trip experience
   - Admin Center emphasizes create/delete, accounts, media, backup, audit and recovery
   - trip deletion history is collapsed so long histories do not bury important tools */
.admin-center-heading { align-items:flex-start; }
.admin-center-lead { max-width:720px; margin:7px 0 0; color:var(--muted); line-height:1.65; }
.admin-create-trip { flex:none; min-height:44px; }

.admin-trip-control {
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-bottom:20px; padding:18px 20px; background:#fff;
  border:1px solid var(--line); border-radius:15px; box-shadow:0 6px 20px #0f38540d;
}
.admin-trip-control h2 { margin:2px 0 5px; color:var(--navy); font-size:1.25rem; }
.admin-trip-control p:last-child { margin:0; color:var(--muted); line-height:1.55; }
.admin-trip-control-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; flex:none; }

.admin-tool-section { margin:0 0 20px; }
.admin-section-heading {
  display:flex; align-items:flex-end; justify-content:space-between; gap:18px;
  margin:0 2px 10px;
}
.admin-section-heading h2 { margin:2px 0 0; color:var(--navy); font-size:1.25rem; }
.admin-section-heading>p { max-width:520px; margin:0; color:var(--muted); font-size:.86rem; text-align:right; }
.admin-tool-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.admin-tool-card {
  display:flex; align-items:center; gap:12px; min-width:0; min-height:84px; padding:14px 15px;
  color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:13px;
  box-shadow:0 5px 16px #0f38540a; text-decoration:none;
}
.admin-tool-card:hover,.admin-tool-card:focus-visible { border-color:#7dd3fc; box-shadow:0 7px 20px #0f385414; }
.admin-tool-card.is-warning { border-color:#fbbf24; background:#fffbeb; }
.admin-tool-icon { flex:none; display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:#f1f5f9; font-size:1.2rem; }
.admin-tool-card>span:last-child { min-width:0; }
.admin-tool-card strong { display:block; color:var(--navy); font-size:.98rem; }
.admin-tool-card small { display:block; margin-top:3px; color:var(--muted); font-size:.78rem; line-height:1.4; }

.admin-delete-section { margin:22px 0; }
.admin-delete-panel {
  overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:14px;
}
.admin-delete-panel>summary {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:15px 17px; cursor:pointer; list-style:none; color:var(--navy); font-weight:900;
}
.admin-delete-panel>summary::-webkit-details-marker { display:none; }
.admin-delete-panel>summary small { color:var(--muted); font-weight:700; }
.admin-delete-panel[open]>summary { border-bottom:1px solid var(--line); }
.admin-delete-panel-body { display:grid; gap:18px; padding:15px 17px 17px; }
.admin-delete-group h3 { margin:0 0 8px; color:var(--navy); font-size:.98rem; }
.admin-delete-group h3 span { color:var(--muted); font-size:.76rem; }
.admin-trip-delete-list { display:grid; gap:7px; }
.admin-trip-delete-row {
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px;
  padding:10px 11px; background:#f8fafc; border:1px solid #e2e8f0; border-radius:10px;
}
.admin-trip-delete-info { min-width:0; color:inherit; text-decoration:none; }
.admin-trip-delete-date { display:block; color:var(--blue); font-size:.76rem; font-weight:800; }
.admin-trip-delete-info strong { display:block; overflow-wrap:anywhere; color:var(--navy); }
.admin-trip-delete-info small { display:block; margin-top:2px; color:var(--muted); font-size:.74rem; overflow-wrap:anywhere; }
.admin-trip-delete-button { min-width:68px; }
.admin-older-trips { border-top:1px solid var(--line); padding-top:12px; }
.admin-older-trips>summary { cursor:pointer; color:var(--blue); font-weight:800; }
.admin-older-trips>.admin-trip-delete-list { margin-top:9px; }

.admin-danger-zone {
  margin:22px 0; overflow:hidden; background:#fff; border:1px solid #fecaca; border-radius:14px;
}
.admin-danger-zone>summary {
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:13px 16px; cursor:pointer; list-style:none; color:#991b1b; font-weight:900;
}
.admin-danger-zone>summary::-webkit-details-marker { display:none; }
.admin-danger-zone>summary small { color:#9f1239; font-size:.76rem; }
.admin-danger-zone[open]>summary { border-bottom:1px solid #fecaca; background:#fff7f7; }
.admin-danger-zone-body { padding:14px 16px 16px; }
.admin-danger-zone-body>p { margin:0 0 12px; color:var(--muted); }
.admin-danger-actions { display:flex; flex-wrap:wrap; gap:10px; }
.admin-danger-actions form { margin:0; }

@media (max-width:900px) {
  .admin-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px) {
  .admin-center-heading,.admin-trip-control,.admin-section-heading { display:block; }
  .admin-create-trip { width:100%; margin-top:12px; }
  .admin-trip-control-actions { display:grid; grid-template-columns:1fr; margin-top:13px; }
  .admin-trip-control-actions .button-link { width:100%; box-sizing:border-box; }
  .admin-section-heading>p { margin-top:5px; text-align:left; }
  .admin-tool-grid { grid-template-columns:1fr; }
  .admin-tool-card { min-height:72px; }
  .admin-trip-delete-row { grid-template-columns:minmax(0,1fr) auto; }
  .admin-trip-delete-button { min-width:62px; padding:9px 11px; }
  .admin-danger-actions { display:grid; grid-template-columns:1fr; }
  .admin-danger-actions button { width:100%; }
}


/* ==========================================================================
   1.52r6 - Compact home trip summary + common photo hub
   ========================================================================== */

.home-trip-brief-card {
  padding: clamp(14px, 3vw, 20px);
  border-color: #bae6fd;
  background: linear-gradient(145deg, #f0f9ff 0, #fff 55%);
}

.home-trip-brief-heading {
  align-items: center;
  margin-bottom: 8px;
}

.home-trip-brief-heading h2 {
  font-size: 1.25rem;
}

.home-trip-brief-list {
  border-top: 1px solid #dbeafe;
}

.home-trip-brief-row {
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px 0;
}

.home-trip-brief-row + .home-trip-brief-row {
  border-top: 1px solid #e2e8f0;
}

.home-trip-brief-label {
  display: grid;
  gap: 4px;
}

.home-trip-kind {
  width: fit-content;
  padding: 2px 8px;
  color: #075985;
  background: #e0f2fe;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 900;
}

.home-trip-kind.previous {
  color: #475569;
  background: #f1f5f9;
}

.home-trip-brief-label time {
  color: var(--navy);
  font-size: .82rem;
  font-weight: 900;
  white-space: nowrap;
}

.home-trip-brief-main {
  min-width: 0;
}

.home-trip-brief-main h3 {
  margin: 0 0 5px;
  color: var(--navy);
  font-size: 1.05rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.home-trip-brief-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 12px;
  color: #64748b;
  font-size: .76rem;
  font-weight: 700;
}

.home-trip-brief-meta > span,
.home-trip-brief-meta > a {
  min-width: 0;
}

.home-trip-brief-meta > a {
  color: var(--blue);
  text-decoration: none;
}

.home-trip-brief-meta .status,
.home-trip-brief-meta .home-rsvp-unanswered {
  min-height: 22px;
  margin-left: 2px;
  padding: 1px 7px;
  font-size: .7rem;
}

.home-trip-brief-action {
  min-width: 102px;
  min-height: 40px;
  padding: 8px 12px;
  font-size: .78rem;
  white-space: nowrap;
}

.home-trip-brief-action.secondary-action {
  color: #075985;
  background: #fff;
  border-color: #7dd3fc;
}

.home-more-trips-card {
  padding: 0;
  overflow: hidden;
}

.home-more-trips-card > summary {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  cursor: pointer;
  list-style: none;
}

.home-more-trips-card > summary::-webkit-details-marker {
  display: none;
}

.home-more-trips-card > summary > span:first-child {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.home-more-trips-card > summary strong {
  color: var(--navy);
}

.home-more-trips-card > summary small {
  color: var(--muted);
  font-size: .74rem;
}

.home-more-trips-toggle {
  color: var(--blue);
  font-size: .76rem;
  font-weight: 900;
}

.home-more-trips-card[open] .home-more-trips-toggle::before {
  content: "閉じる";
  font-size: 0.76rem;
}

.home-more-trips-card[open] .home-more-trips-toggle {
  font-size: 0;
}

.home-more-trips-card .home-upcoming-list {
  padding: 0 16px 14px;
  border-top: 1px solid var(--line);
}

.home-more-trips-all {
  display: inline-flex;
  min-height: 38px;
  align-items: center;
  margin-top: 10px;
  color: var(--blue);
  font-size: .8rem;
  font-weight: 900;
  text-decoration: none;
}

.photo-hub-intro {
  margin-bottom: 16px;
}

.photo-hub-summary {
  margin: 0 2px 10px;
  color: var(--muted);
  font-size: .84rem;
  font-weight: 700;
}

.photo-hub-summary strong {
  margin: 0 2px;
  color: var(--navy);
}

.photo-hub-list {
  display: grid;
  gap: 14px;
}

.photo-hub-card {
  padding: 16px;
}

.photo-hub-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 11px;
}

.photo-hub-card-heading time {
  color: var(--blue);
  font-size: .78rem;
  font-weight: 900;
}

.photo-hub-card-heading h2 {
  margin: 2px 0 0;
  color: var(--navy);
  font-size: 1.08rem;
  line-height: 1.35;
}

.photo-hub-card-heading p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: .78rem;
}

.photo-hub-card-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: none;
}

.photo-hub-card-actions > span {
  padding: 3px 8px;
  color: #475569;
  background: #f1f5f9;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
}

.photo-hub-card-actions > a {
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  padding: 7px 10px;
  color: #fff;
  background: var(--blue);
  border-radius: 8px;
  font-size: .76rem;
  font-weight: 900;
  text-decoration: none;
}

.photo-hub-preview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.photo-hub-preview a {
  min-width: 0;
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: 9px;
  overflow: hidden;
  background: #e2e8f0;
}

.photo-hub-preview img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.photo-hub-preview a:hover img {
  transform: scale(1.02);
}

.photo-hub-empty {
  text-align: center;
}

.photo-hub-empty h2 {
  margin-top: 0;
  color: var(--navy);
}

@media (max-width: 680px) {
  .home-trip-brief-card {
    padding: 12px 13px;
  }

  .home-trip-brief-heading {
    margin-bottom: 5px;
  }

  .home-trip-brief-row {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 8px 10px;
    padding: 10px 0;
  }

  .home-trip-brief-main h3 {
    font-size: .98rem;
  }

  .home-trip-brief-meta {
    gap: 4px 9px;
    font-size: .72rem;
  }

  .home-trip-brief-action {
    grid-column: 2;
    width: fit-content;
    min-width: 0;
    min-height: 36px;
    padding: 7px 11px;
  }

  .home-more-trips-card > summary {
    min-height: 50px;
    padding: 10px 13px;
  }

  .home-more-trips-card > summary > span:first-child {
    align-items: flex-start;
    flex-direction: column;
    gap: 1px;
  }

  .home-more-trips-card .home-upcoming-list {
    padding: 0 13px 12px;
  }

  .photo-hub-card {
    padding: 13px;
  }

  .photo-hub-card-heading {
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
  }

  .photo-hub-card-actions {
    justify-content: space-between;
  }

  .photo-hub-preview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ==========================================================================
   1.52r7 - Home priority facts + clear account-entry flow
   ========================================================================== */

.home-next-trip {
  padding: 12px 0 10px;
}

.home-next-trip-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 10px;
}

.home-next-trip-header > div {
  min-width: 0;
}

.home-next-trip-header h3 {
  margin: 4px 0 0;
  color: var(--navy);
  font-size: 1.14rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.home-next-trip-action {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 8px 13px;
  font-size: .8rem;
  white-space: nowrap;
}

.home-next-trip-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  overflow: hidden;
  border: 1px solid #dbeafe;
  border-radius: 12px;
  background: #dbeafe;
}

.home-next-trip-fact {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  margin: 0;
  padding: 8px 10px;
  background: #fff;
}

.home-next-trip-fact.fact-wide {
  grid-column: 1 / -1;
}

.home-next-trip-fact dt {
  margin: 0;
  color: #64748b;
  font-size: .72rem;
  font-weight: 900;
  white-space: nowrap;
}

.home-next-trip-fact dd {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px 10px;
  min-width: 0;
  margin: 0;
  color: #0f172a;
  font-size: .82rem;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.home-next-trip-fact.fact-primary dd {
  color: var(--navy);
  font-size: .92rem;
}

.home-next-trip-party {
  background: #fffbeb;
}

.home-next-trip-weather {
  background: #f0f9ff;
}

.home-inline-link {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 8px;
  border: 1px solid #bae6fd;
  border-radius: 999px;
  color: #0369a1;
  background: #fff;
  font-size: .72rem;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
}

.login-choice-card {
  max-width: 560px;
}

.login-choice-lead {
  margin-bottom: 18px;
}

.login-entry-panel {
  margin-top: 14px;
  padding: 18px;
  border: 1px solid #dbeafe;
  border-radius: 14px;
  text-align: left;
  background: #fff;
}

.login-entry-panel h2 {
  margin: 2px 0 8px;
  color: var(--navy);
  font-size: 1.12rem;
}

.login-entry-panel p {
  margin-top: 0;
  font-size: .9rem;
  line-height: 1.65;
}

.login-entry-primary {
  border-color: #7dd3fc;
  background: #f0f9ff;
}

.login-entry-first {
  border-color: #cbd5e1;
  background: #f8fafc;
}

.login-create-button {
  width: 100%;
}

.login-entry-note {
  display: block;
  margin-top: 9px;
  color: #64748b;
  line-height: 1.55;
}

.account-register-card {
  margin-bottom: 18px;
}

.account-register-confirmed {
  margin: 12px 0 20px;
  padding: 12px 14px;
  border: 1px solid #bbf7d0;
  border-radius: 12px;
  background: #f0fdf4;
}

.account-register-confirmed strong {
  color: #166534;
}

.account-register-confirmed p {
  margin: 5px 0 0;
  color: #475569;
}

.account-admin-emergency {
  margin-top: 0;
  border-color: #fed7aa;
  background: #fffaf5;
}

.account-admin-emergency h2 {
  margin: 3px 0 8px;
  color: #9a3412;
  font-size: 1.1rem;
}

.account-admin-emergency > p,
.account-admin-emergency > small {
  color: #7c2d12;
}

@media (max-width: 640px) {
  .home-next-trip-header {
    align-items: flex-start;
  }

  .home-next-trip-header h3 {
    font-size: 1.04rem;
  }

  .home-next-trip-action {
    min-height: 36px;
    padding: 7px 10px;
    font-size: .74rem;
  }

  .home-next-trip-facts {
    grid-template-columns: 1fr;
  }

  .home-next-trip-fact,
  .home-next-trip-fact.fact-wide {
    grid-column: 1;
    grid-template-columns: 68px minmax(0, 1fr);
    padding: 7px 9px;
  }

  .home-next-trip-fact dt {
    font-size: .69rem;
  }

  .home-next-trip-fact dd {
    font-size: .78rem;
  }

  .login-entry-panel {
    padding: 15px;
  }
}


/* ==========================================================================
   1.52r8 - UI Stable / Full Regression hardening
   Permission-consistent read-only layouts and long-content/mobile resilience.
   ========================================================================== */

.trip-meta dd,
.response-item,
.response-comment,
.comment-list li > div,
.comment-list p,
.past-notice-title-text,
.past-notice-body,
.photo-hub-card h2,
.member-name-full,
.home-next-trip-fact dd {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.comment-list li,
.response-item {
  min-width: 0;
}

.edit-dialog {
  max-width: min(680px, calc(100vw - 24px));
  max-height: calc(100dvh - 24px);
}

.edit-dialog form {
  max-width: 100%;
}

@media (max-width: 640px) {
  .response-actions {
    flex-wrap: wrap;
  }

  .response-actions button,
  .response-actions form,
  .response-actions form button {
    min-height: 44px;
  }

  .weather-update-row {
    align-items: stretch;
  }

  .weather-update-row > form,
  .weather-update-row > form > button,
  .weather-update-row > a {
    max-width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-152r8.css ===== */

/* ===== KMA CSS SOURCE 002/101: style-152r10.css ===== */
/* 1.52r10 My Page layout foundation.
   Existing 1.52r8 styles remain authoritative for shared components. */
.my-page-stack {
  width: min(760px, 100%);
  margin: 0 auto;
  display: grid;
  gap: 16px;
}
.my-page-stack .form-card {
  width: 100%;
  max-width: none;
  margin: 0;
}
.my-page-card h2 {
  margin: 2px 0 0;
  color: var(--navy);
  font-size: 1.25rem;
}
.my-page-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}
.my-page-profile-name {
  margin: 2px 0 14px;
  color: var(--navy);
  font-size: clamp(1.45rem, 5vw, 1.9rem);
  font-weight: 900;
  overflow-wrap: anywhere;
}
.my-page-meta {
  margin: 0;
  padding: 12px 14px;
  background: #f8fafc;
  border-radius: 12px;
}
.my-page-meta > div {
  display: grid;
  grid-template-columns: minmax(90px, 125px) 1fr;
  gap: 10px;
}
.my-page-meta > div + div {
  margin-top: 8px;
}
.my-page-meta dt {
  color: var(--muted);
  font-size: .82rem;
  font-weight: 800;
}
.my-page-meta dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.my-page-help {
  margin: 0 0 12px;
  color: var(--muted);
  font-size: .9rem;
}
.my-page-count {
  flex: none;
  padding: 4px 9px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: .78rem;
  font-weight: 800;
}
.my-page-edit-panel {
  margin-top: 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fbfdff;
  overflow: hidden;
}
.my-page-edit-panel > summary {
  padding: 11px 13px;
  color: var(--blue);
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
.my-page-edit-panel > summary::-webkit-details-marker {
  display: none;
}
.my-page-edit-panel > summary::before {
  content: "＋ ";
}
.my-page-edit-panel[open] > summary::before {
  content: "− ";
}
.my-page-edit-panel > .admin-form {
  margin: 0;
  padding: 4px 13px 14px;
}
.my-page-edit-panel > .admin-form + .admin-form {
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.my-page-compact-form {
  gap: 12px;
}
.my-page-assignment-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 7px;
}
.my-page-assignment-list li {
  margin: 0;
}
.my-page-assignment-list a {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  padding: 9px 11px;
  color: var(--ink);
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  text-decoration: none;
}
.my-page-assignment-list a:hover {
  border-color: #7dd3fc;
}
.my-page-assignment-list span {
  color: var(--blue);
  font-size: .83rem;
  font-weight: 800;
}
.my-page-assignment-list strong {
  min-width: 0;
  overflow-wrap: anywhere;
}
.my-page-assignment-list small {
  color: var(--muted);
  font-size: .72rem;
}
.my-page-trip-picker {
  max-height: 340px;
  overflow: auto;
  padding-right: 4px;
}
.my-page-companion-list {
  display: grid;
  gap: 8px;
  margin-top: 10px;
}
.my-page-companion-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 11px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
}
.my-page-companion-row > strong {
  overflow-wrap: anywhere;
}
.my-page-inline-details {
  position: relative;
}
.my-page-inline-details > summary {
  padding: 5px 9px;
  color: var(--blue);
  border: 1px solid #bae6fd;
  border-radius: 8px;
  background: #fff;
  font-size: .78rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
.my-page-inline-details > summary::-webkit-details-marker {
  display: none;
}
.my-page-companion-edit {
  grid-column: 1 / -1;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #e2e8f0;
}
.my-page-companion-edit .admin-form {
  margin-top: 0;
}
.my-page-companion-edit .inline-delete {
  margin-top: 8px;
  text-align: right;
}
.my-page-left-actions {
  justify-content: flex-start;
}
.my-page-home-link {
  margin: 2px 0 0;
  text-align: center;
}

@media (max-width: 640px) {
  .my-page-stack {
    gap: 12px;
  }
  .my-page-stack .form-card {
    padding: 18px 16px;
  }
  .my-page-meta > div {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .my-page-assignment-list a {
    grid-template-columns: 82px minmax(0, 1fr);
  }
  .my-page-assignment-list small {
    grid-column: 2;
  }
  .my-page-companion-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .my-page-section-heading {
    align-items: center;
  }
}
/* ===== END KMA CSS SOURCE: style-152r10.css ===== */

/* ===== KMA CSS SOURCE 003/101: style-152r11.css ===== */
/* 1.52r11 My Page responsibility/organizer usability.
   Keeps 1.52r10 as the foundation and only refines the assignment section. */

.my-page-assignment-cards {
  display: grid;
  gap: 9px;
}

.my-page-assignment-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: stretch;
  padding: 0;
  border: 1px solid #dbeafe;
  border-radius: 12px;
  background: #f8fbff;
  overflow: hidden;
}

.my-page-assignment-main {
  min-width: 0;
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  gap: 3px 10px;
  align-items: center;
  padding: 11px 12px;
  color: var(--ink);
  text-decoration: none;
}

.my-page-assignment-main:hover {
  background: #eff8ff;
}

.my-page-assignment-main strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.my-page-assignment-main small {
  grid-column: 2;
  color: var(--muted);
  overflow-wrap: anywhere;
}

.my-page-assignment-date {
  grid-row: 1 / span 2;
  align-self: start;
  color: var(--blue);
  font-size: .82rem;
  font-weight: 850;
  white-space: nowrap;
}

.my-page-assignment-remove {
  display: flex;
  align-items: center;
  padding: 8px 10px 8px 0;
}

.my-page-assignment-remove button {
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid #fecaca;
  border-radius: 9px;
  background: #fff;
  color: #b91c1c;
  font-weight: 800;
}

.my-page-assignment-add select {
  width: 100%;
}

.my-page-past-assignments {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.my-page-past-assignments > summary {
  color: var(--muted);
  font-size: .88rem;
  font-weight: 800;
  cursor: pointer;
}

.my-page-assignment-history {
  list-style: none;
  margin: 9px 0 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.my-page-assignment-history li {
  margin: 0;
}

.my-page-assignment-history a {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 9px;
  background: #f8fafc;
  color: var(--ink);
  text-decoration: none;
}

.my-page-assignment-history span {
  color: var(--muted);
  font-size: .79rem;
  font-weight: 800;
}

.my-page-assignment-history strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.my-page-assignment-history small {
  color: var(--muted);
  font-size: .75rem;
  overflow-wrap: anywhere;
}

@media (max-width: 640px) {
  .my-page-assignment-card {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .my-page-assignment-main {
    grid-template-columns: 1fr;
    gap: 2px;
    padding: 10px 11px;
  }

  .my-page-assignment-date {
    grid-row: auto;
    white-space: normal;
  }

  .my-page-assignment-main small {
    grid-column: 1;
  }

  .my-page-assignment-remove {
    padding: 8px 8px 8px 0;
  }

  .my-page-assignment-history a {
    grid-template-columns: 78px minmax(0, 1fr);
  }

  .my-page-assignment-history small {
    grid-column: 2;
  }
}
/* ===== END KMA CSS SOURCE: style-152r11.css ===== */

/* ===== KMA CSS SOURCE 004/101: style-152r12.css ===== */
/* 1.52r12 My Page "いつもの同行者" usability.
   Keeps the existing frequent-participant DB model and improves only UI/selection flow. */

.my-page-companion-name {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.my-page-companion-name strong {
  overflow-wrap: anywhere;
}

.my-page-companion-name small {
  color: var(--muted);
  font-size: .74rem;
}

.my-page-companion-empty {
  display: grid;
  gap: 3px;
  margin-top: 10px;
  padding: 11px 12px;
  border: 1px dashed #cbd5e1;
  border-radius: 10px;
  background: #f8fafc;
}

.my-page-companion-empty span {
  color: var(--muted);
  font-size: .84rem;
}

.my-page-companion-addbox {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

.my-page-companion-addbox h3 {
  margin: 0 0 8px;
  font-size: .94rem;
}

.my-page-companion-add-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: end;
}

.my-page-companion-add-form label {
  min-width: 0;
  display: grid;
  gap: 4px;
  margin: 0;
}

.my-page-companion-add-form label > span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}

.my-page-companion-add-form input {
  width: 100%;
}

.my-page-companion-add-form button {
  min-height: 42px;
  white-space: nowrap;
}

.my-page-companion-note {
  display: block;
  margin-top: 6px;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.45;
}

.rsvp-name-quick-picks {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: -2px 0 9px;
}

.rsvp-name-quick-pick {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  max-width: 100%;
  padding: 6px 10px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  cursor: pointer;
}

.rsvp-name-quick-pick span {
  flex: 0 0 auto;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
}

.rsvp-name-quick-pick strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: .84rem;
}

.rsvp-name-quick-pick.is-self {
  border-color: #93c5fd;
  background: #eff6ff;
}

.rsvp-name-quick-pick[aria-pressed="true"] {
  border-color: var(--blue);
  box-shadow: 0 0 0 2px rgba(37, 99, 235, .12);
}

.rsvp-name-helper {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 5px 12px;
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 9px;
  background: #f8fafc;
  color: var(--muted);
  font-size: .76rem;
  line-height: 1.45;
}

.rsvp-name-helper a {
  flex: 0 0 auto;
  font-weight: 800;
}

@media (max-width: 640px) {
  .my-page-companion-add-form {
    grid-template-columns: 1fr;
  }

  .my-page-companion-add-form button {
    width: 100%;
  }

  .rsvp-name-quick-picks {
    gap: 6px;
  }

  .rsvp-name-quick-pick {
    min-height: 40px;
    padding: 7px 10px;
  }

  .rsvp-name-helper {
    display: grid;
  }
}
/* ===== END KMA CSS SOURCE: style-152r12.css ===== */

/* ===== KMA CSS SOURCE 005/101: style-152r13.css ===== */
/* 1.52r13 My Page yearly RSVP registration overview.
   Keeps RSVP editing on the trip screen and provides a compact read-only yearly check. */

.my-page-year-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.my-page-year-summary-item {
  min-width: 0;
  display: grid;
  gap: 2px;
  justify-items: center;
  padding: 9px 7px;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  background: #f8fafc;
}

.my-page-year-summary-item span {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
}

.my-page-year-summary-item strong {
  color: var(--navy);
  font-size: 1.25rem;
  line-height: 1;
}

.my-page-year-summary-item.status-attend {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.my-page-year-summary-item.status-absent {
  border-color: #e2e8f0;
  background: #f8fafc;
}

.my-page-year-summary-item.status-undecided {
  border-color: #fde68a;
  background: #fffbeb;
}

.my-page-year-summary-item.status-unanswered {
  border-color: #fecaca;
  background: #fff7f7;
}

.my-page-year-alert {
  margin: 0 0 10px;
  padding: 9px 11px;
  border: 1px solid #fdba74;
  border-radius: 10px;
  background: #fff7ed;
  color: #9a3412;
  font-size: .85rem;
}

.my-page-year-list {
  display: grid;
  gap: 7px;
  margin-top: 10px;
}

.my-page-year-row {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-height: 52px;
  padding: 8px 10px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
}

.my-page-year-row:hover {
  border-color: #93c5fd;
  background: #f8fbff;
}

.my-page-year-row.is-unanswered {
  border-color: #fecaca;
  background: #fffafa;
}

.my-page-year-date {
  display: grid;
  gap: 1px;
  color: var(--blue);
  font-size: .84rem;
  font-weight: 850;
}

.my-page-year-date small {
  color: var(--muted);
  font-size: .67rem;
  font-weight: 700;
}

.my-page-year-trip {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.my-page-year-trip strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.my-page-year-trip small {
  color: var(--muted);
  font-size: .74rem;
  overflow-wrap: anywhere;
}

.my-page-year-status {
  min-width: 58px;
  padding: 5px 8px;
  border-radius: 999px;
  text-align: center;
  font-size: .76rem;
  font-weight: 900;
  white-space: nowrap;
}

.my-page-year-status.status-attend {
  background: #dcfce7;
  color: #166534;
}

.my-page-year-status.status-absent {
  background: #e2e8f0;
  color: #475569;
}

.my-page-year-status.status-undecided {
  background: #fef3c7;
  color: #92400e;
}

.my-page-year-status.status-unanswered {
  background: #fee2e2;
  color: #b91c1c;
}

.my-page-year-note {
  margin: 9px 0 0;
  color: var(--muted);
  font-size: .74rem;
  line-height: 1.45;
}

@media (max-width: 640px) {
  .my-page-year-summary {
    gap: 6px;
  }

  .my-page-year-summary-item {
    padding: 8px 4px;
  }

  .my-page-year-summary-item strong {
    font-size: 1.12rem;
  }

  .my-page-year-row {
    grid-template-columns: 64px minmax(0, 1fr) auto;
    gap: 7px;
    padding: 8px;
  }

  .my-page-year-status {
    min-width: 52px;
    padding: 5px 6px;
  }
}

@media (max-width: 390px) {
  .my-page-year-row {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  .my-page-year-status {
    grid-column: 2;
    justify-self: start;
  }
}
/* ===== END KMA CSS SOURCE: style-152r13.css ===== */

/* ===== KMA CSS SOURCE 006/101: style-152r14.css ===== */
/* 1.52r14 My Page final polish.
   Refines the r10-r13 sections without changing their feature ownership. */

.my-page-stack {
  width: min(780px, 100%);
  gap: 12px;
}

.my-page-card {
  scroll-margin-top: 84px;
  padding: 22px 24px;
  border-radius: 16px;
  box-shadow: 0 6px 18px #0f38540a;
}

.my-page-section-heading {
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.my-page-section-heading h1,
.my-page-section-heading h2 {
  margin: 0;
  line-height: 1.25;
}

.my-page-section-heading h1 {
  color: var(--navy);
  font-size: clamp(1.45rem, 4vw, 1.8rem);
}

.my-page-card h2 {
  font-size: 1.18rem;
}

.my-page-profile-name {
  margin: 0 0 10px;
  font-size: clamp(1.35rem, 4.6vw, 1.75rem);
  line-height: 1.35;
}

.my-page-help {
  margin: -1px 0 10px;
  font-size: .84rem;
  line-height: 1.5;
}

.my-page-count {
  min-width: 44px;
  text-align: center;
}

.my-page-meta {
  padding: 10px 12px;
}

.my-page-meta > div {
  grid-template-columns: minmax(86px, 118px) minmax(0, 1fr);
  gap: 8px;
}

.my-page-meta > div + div {
  margin-top: 6px;
}

.my-page-edit-panel {
  margin-top: 11px;
}

.my-page-edit-panel > summary,
.my-page-past-assignments > summary,
.my-page-past-trips > summary {
  min-height: 44px;
  display: flex;
  align-items: center;
}

.my-page-edit-panel > summary:focus-visible,
.my-page-inline-details > summary:focus-visible,
.my-page-past-assignments > summary:focus-visible,
.my-page-past-trips > summary:focus-visible,
.my-page-assignment-main:focus-visible,
.my-page-year-row:focus-visible {
  outline: 3px solid #7dd3fc88;
  outline-offset: 2px;
}

.my-page-assignment-cards,
.my-page-companion-list,
.my-page-year-list {
  gap: 6px;
}

.my-page-assignment-card {
  min-height: 54px;
}

.my-page-assignment-main {
  padding-top: 8px;
  padding-bottom: 8px;
}

.my-page-assignment-date {
  font-size: .78rem;
}

.my-page-assignment-remove button {
  min-height: 40px;
}

.my-page-past-assignments {
  margin-top: 10px;
}

.my-page-companion-list {
  margin-top: 8px;
}

.my-page-companion-row {
  min-height: 50px;
  padding: 7px 10px;
}

.my-page-inline-details > summary {
  min-height: 38px;
  display: flex;
  align-items: center;
}

.my-page-companion-addbox {
  margin-top: 10px;
  padding: 11px 12px;
}

.my-page-companion-addbox h3 {
  margin-bottom: 7px;
  font-size: .95rem;
}

.my-page-companion-add-form {
  gap: 8px;
}

.my-page-companion-add-form input {
  margin-top: 3px;
}

.my-page-companion-note {
  margin-top: 5px;
}

.my-page-year-summary {
  margin: 9px 0 10px;
}

.my-page-year-summary-item {
  padding: 8px 6px;
}

.my-page-year-alert {
  margin-bottom: 9px;
}

.my-page-year-subheading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 11px 1px 6px;
  color: var(--navy);
  font-size: .9rem;
}

.my-page-year-subheading span {
  color: var(--muted);
  font-size: .74rem;
  font-weight: 800;
}

.my-page-year-row {
  min-height: 49px;
  padding: 7px 9px;
}

.my-page-past-trips {
  margin-top: 9px;
  border-top: 1px solid #e2e8f0;
}

.my-page-past-trips > summary {
  padding: 8px 2px 2px;
  color: var(--blue);
  font-size: .84rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}

.my-page-past-trips > summary::-webkit-details-marker {
  display: none;
}

.my-page-past-trips > summary::before {
  content: "＋ ";
}

.my-page-past-trips[open] > summary::before {
  content: "− ";
}

.my-page-past-trips .my-page-year-list {
  margin-top: 5px;
}

.my-page-account-meta dd {
  font-size: .9rem;
}

.my-page-account-meta small {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 500;
}

.my-page-home-link {
  margin-top: 0;
}

@media (max-width: 640px) {
  .my-page-stack {
    gap: 10px;
  }

  .my-page-card {
    padding: 15px 14px;
    border-radius: 14px;
  }

  .my-page-section-heading {
    margin-bottom: 8px;
  }

  .my-page-help {
    margin-bottom: 8px;
  }

  .my-page-meta {
    padding: 9px 10px;
  }

  .my-page-meta > div {
    grid-template-columns: 1fr;
    gap: 1px;
  }

  .my-page-edit-panel {
    margin-top: 9px;
  }

  .my-page-assignment-main {
    padding-left: 9px;
    padding-right: 8px;
  }

  .my-page-companion-addbox {
    padding: 10px;
  }

  .my-page-year-summary {
    gap: 5px;
  }

  .my-page-year-summary-item {
    padding: 7px 3px;
  }

  .my-page-year-row {
    grid-template-columns: 62px minmax(0, 1fr) auto;
    gap: 6px;
  }

  .my-page-left-actions .button-link {
    width: 100%;
  }

  .my-page-compact-form .form-actions button,
  .my-page-companion-add-form button {
    min-height: 44px;
  }
}

@media (max-width: 380px) {
  .my-page-year-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .my-page-year-row {
    grid-template-columns: 56px minmax(0, 1fr);
  }

  .my-page-year-status {
    grid-column: 2;
    justify-self: start;
  }

  .my-page-section-heading {
    gap: 8px;
  }
}
/* ===== END KMA CSS SOURCE: style-152r14.css ===== */

/* ===== KMA CSS SOURCE 007/101: style-152r15.css ===== */
.login-id-field {
  display: grid;
  gap: 0.45rem;
}

.login-id-field > label {
  font-weight: 700;
}

.login-id-generator {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.55rem;
  align-items: stretch;
}

.login-id-generator input {
  min-width: 0;
  width: 100%;
}

.login-id-generate-button {
  min-height: 44px;
  white-space: nowrap;
  align-self: stretch;
}

.login-id-generator-status {
  min-height: 1.25em;
  color: var(--muted, #52606d);
}

.login-id-generator-status.is-error {
  color: #b42318;
}

@media (max-width: 560px) {
  .login-id-generator {
    grid-template-columns: 1fr;
  }

  .login-id-generate-button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-152r15.css ===== */

/* ===== KMA CSS SOURCE 008/101: style-152r16.css ===== */
/* 1.52r16 Password UX / account-settings feedback. */

.password-field-with-toggle {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  margin-top: 5px;
}

.password-field-with-toggle > input {
  min-width: 0;
  width: 100%;
  margin-top: 0 !important;
}

.password-toggle-button {
  min-width: 64px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #7dd3fc;
  border-radius: 9px;
  color: var(--blue);
  background: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}

.password-toggle-button:hover {
  background: #f0f9ff;
}

.password-toggle-button:focus-visible {
  outline: 3px solid #7dd3fc88;
  outline-offset: 2px;
}

.account-inline-feedback {
  margin: 10px 0 2px;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.5;
}

.account-inline-feedback.success {
  color: #166534;
  background: #dcfce7;
  border: 1px solid #bbf7d0;
}

.account-inline-feedback.error {
  color: #991b1b;
  background: #fee2e2;
  border: 1px solid #fecaca;
}

.account-inline-feedback.info {
  color: #075985;
  background: #e0f2fe;
  border: 1px solid #bae6fd;
}

@media (max-width: 420px) {
  .password-field-with-toggle {
    grid-template-columns: minmax(0, 1fr) 60px;
    gap: 6px;
  }

  .password-toggle-button {
    min-width: 60px;
    padding-left: 8px;
    padding-right: 8px;
  }
}
/* ===== END KMA CSS SOURCE: style-152r16.css ===== */

/* ===== KMA CSS SOURCE 009/101: style-152r17.css ===== */
/* 1.52r17 Password candidate generator / member-profile privacy polish. */

.password-generator {
  display: block;
  width: 100%;
}

.password-generator .password-field-with-toggle {
  margin-top: 5px;
}

.password-generate-button {
  margin-top: 8px;
  min-height: 42px;
  padding: 8px 14px;
  white-space: nowrap;
}

.password-generator-status {
  display: block;
  min-height: 1.35em;
  margin-top: 6px;
  color: #166534;
  font-size: .85rem;
  font-weight: 700;
  line-height: 1.45;
}

.password-generator-status.is-error {
  color: #991b1b;
}

@media (max-width: 520px) {
  .password-generate-button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-152r17.css ===== */

/* ===== KMA CSS SOURCE 010/101: style-153r2.css ===== */
/* KMA FISHING CLUB 1.53r2 — Viewer Ownership / Member Creates Viewer */

.viewer-account-card .my-page-help {
  margin-bottom: 0.9rem;
}

.viewer-account-list {
  display: grid;
  gap: 0.7rem;
  margin: 0.85rem 0;
}

.viewer-account-row {
  border: 1px solid var(--border, #d7e0e8);
  border-radius: 14px;
  background: #f8fbfd;
  padding: 0.85rem 0.95rem;
}

.viewer-account-name-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.55rem;
}

.viewer-account-name-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.viewer-state-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0.2rem 0.65rem;
  border-radius: 999px;
  background: #e8f6ee;
  color: #17603a;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.viewer-state-badge.is-stopped {
  background: #eef1f4;
  color: #5d6873;
}

.viewer-account-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.35rem;
  margin: 0;
}

.viewer-account-meta > div {
  display: grid;
  grid-template-columns: 7.2rem minmax(0, 1fr);
  gap: 0.55rem;
  align-items: baseline;
}

.viewer-account-meta dt {
  color: #5e6e7b;
  font-size: 0.82rem;
  font-weight: 700;
}

.viewer-account-meta dd {
  min-width: 0;
  margin: 0;
  font-size: 0.9rem;
  overflow-wrap: anywhere;
}

.viewer-account-note {
  margin: 0.6rem 0 0;
  color: #667785;
  font-size: 0.82rem;
}

.viewer-account-empty {
  display: grid;
  gap: 0.2rem;
  margin: 0.85rem 0;
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  background: #f6f9fb;
}

.viewer-account-empty span {
  color: #667785;
  font-size: 0.88rem;
}

.viewer-create-panel {
  margin-top: 0.9rem;
}

.viewer-create-form .credential-record-check {
  margin-top: 0.25rem;
}

.viewer-registration-complete {
  max-width: 720px;
  margin-inline: auto;
}

@media (max-width: 640px) {
  .viewer-account-row {
    padding: 0.75rem 0.8rem;
  }

  .viewer-account-name-row {
    align-items: flex-start;
  }

  .viewer-account-meta > div {
    grid-template-columns: 1fr;
    gap: 0.05rem;
  }
}
/* ===== END KMA CSS SOURCE: style-153r2.css ===== */

/* ===== KMA CSS SOURCE 011/101: style-153r3.css ===== */
/* KMA FISHING CLUB 1.53r3 — Viewer Permission Enforcement */
.viewer-readonly-account-card {
  display: grid;
  gap: 14px;
}

.viewer-readonly-scope {
  border: 1px solid rgba(7, 89, 133, 0.18);
  border-radius: 14px;
  background: rgba(240, 249, 255, 0.75);
  padding: 14px 16px;
}

.viewer-readonly-scope strong {
  display: block;
  margin-bottom: 6px;
}

.viewer-readonly-scope p {
  margin: 4px 0 0;
  line-height: 1.65;
}

.viewer-owner-meta {
  margin-top: 0;
}

.viewer-readonly-banner {
  line-height: 1.55;
}

@media (max-width: 640px) {
  .viewer-readonly-scope {
    padding: 12px 13px;
  }
}
/* ===== END KMA CSS SOURCE: style-153r3.css ===== */

/* ===== KMA CSS SOURCE 012/101: style-153r4.css ===== */
/* KMA FISHING CLUB 1.53r4 — Viewer Management */
.viewer-account-row {
  gap: 12px;
}

.viewer-account-row.is-expired {
  opacity: 0.92;
}

.viewer-state-badge.is-expired {
  font-weight: 800;
}

.viewer-expiry-warning {
  margin: 10px 0 0;
  padding: 10px 12px;
  border: 1px solid rgba(180, 83, 9, 0.25);
  border-radius: 12px;
  background: rgba(255, 247, 237, 0.8);
  line-height: 1.55;
}

.viewer-management-panel {
  width: 100%;
  margin-top: 10px;
  border-top: 1px solid rgba(15, 23, 42, 0.1);
  padding-top: 10px;
}

.viewer-management-panel > summary,
.viewer-password-reset-panel > summary {
  cursor: pointer;
  font-weight: 800;
}

.viewer-inline-form {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}

.viewer-inline-form label {
  display: grid;
  gap: 6px;
}

.viewer-management-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0;
}

.viewer-password-reset-panel {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed rgba(15, 23, 42, 0.16);
}

.viewer-issued-expiry {
  margin: 14px 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: rgba(240, 249, 255, 0.8);
}

.viewer-issued-expiry p {
  margin: 6px 0 0;
  line-height: 1.55;
}

.viewer-admin-expiry {
  margin-top: 10px;
}

.account-card.is-expired {
  border-style: dashed;
}

@media (max-width: 640px) {
  .viewer-management-actions,
  .viewer-management-actions form,
  .viewer-management-actions button {
    width: 100%;
  }

  .viewer-inline-form button,
  .viewer-password-reset-panel button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-153r4.css ===== */

/* ===== KMA CSS SOURCE 013/101: style-154r1.css ===== */
/* KMA FISHING CLUB 1.54r1 — Notification Foundation */

.notification-nav-link {
  gap: 6px;
}

.notification-nav-badge {
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #ef4444;
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
  line-height: 1;
}

.primary-nav-link.is-active .notification-nav-badge {
  color: #fff;
}

.notification-summary {
  margin: -8px 0 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.notification-summary span {
  padding: 7px 11px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  font-size: .84rem;
}

.notification-list {
  display: grid;
  gap: 12px;
}

.notification-card {
  padding: 0;
  overflow: hidden;
}

.notification-card.is-unread,
.notification-detail-card.is-unread {
  border-color: #7dd3fc;
  box-shadow: 0 10px 30px #0ea5e91f;
}

.notification-card-link {
  padding: clamp(16px, 4vw, 22px);
  display: block;
  color: inherit;
  text-decoration: none;
}

.notification-card-link:hover {
  background: #f8fafc;
}

.notification-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

.notification-card-title-row {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.notification-card-title-row h2 {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  color: var(--navy);
  font-size: 1.08rem;
}

.notification-card-heading time,
.notification-detail-meta time {
  flex: none;
  color: #64748b;
  font-size: .78rem;
  white-space: nowrap;
}

.notification-unread-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: #0284c7;
}

.notification-state-badge {
  flex: none;
  padding: 3px 8px;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-size: .72rem;
  font-weight: 900;
}

.notification-state-badge.is-read {
  background: #f1f5f9;
  color: #64748b;
}

.notification-card-body {
  margin: 10px 0 0 17px;
  display: -webkit-box;
  overflow: hidden;
  color: #475569;
  line-height: 1.55;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.notification-card-open {
  margin: 12px 0 0 17px;
  display: inline-block;
  color: var(--blue);
  font-size: .84rem;
  font-weight: 800;
}

.notification-empty-card {
  text-align: center;
}

.notification-empty-card h2 {
  margin-top: 0;
  color: var(--navy);
}

.notification-back-link {
  font-weight: 800;
  text-decoration: none;
}

.notification-detail-card {
  max-width: 760px;
}

.notification-detail-meta {
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.notification-detail-card h2 {
  margin: 0;
  color: var(--navy);
  overflow-wrap: anywhere;
}

.notification-detail-body {
  margin: 18px 0 0;
  color: #334155;
  line-height: 1.75;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.notification-detail-body.is-empty {
  color: #64748b;
}

.notification-detail-actions {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.notification-detail-actions form {
  margin: 0;
}

.notification-primary-button {
  border: 1px solid var(--blue);
  background: var(--blue);
  color: #fff;
}

.notification-secondary-button {
  border: 1px solid #94a3b8;
  background: #fff;
  color: #334155;
}

@media (max-width: 640px) {
  .notification-card-heading {
    display: grid;
    gap: 8px;
  }

  .notification-card-heading time {
    padding-left: 17px;
    white-space: normal;
  }

  .notification-card-body,
  .notification-card-open {
    margin-left: 17px;
  }

  .notification-detail-actions,
  .notification-detail-actions form,
  .notification-detail-actions button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-154r1.css ===== */

/* ===== KMA CSS SOURCE 014/101: style-154r3.css ===== */
/* KMA FISHING CLUB 1.54r3 — Read State / Preferences */

.notification-toolbar {
  margin: -8px 0 14px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.notification-toolbar .notification-summary {
  margin: 0;
}

.notification-toolbar-actions,
.notification-settings-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.notification-toolbar-actions form {
  margin: 0;
}

.notification-filter-tabs {
  margin: 0 0 18px;
  display: inline-flex;
  max-width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.notification-filter-tab {
  min-width: 74px;
  padding: 9px 13px;
  border-right: 1px solid #cbd5e1;
  color: #475569;
  text-align: center;
  text-decoration: none;
  font-size: .86rem;
  font-weight: 800;
}

.notification-filter-tab:last-child {
  border-right: 0;
}

.notification-filter-tab.is-active {
  background: #e0f2fe;
  color: #075985;
}

.notification-card-title-stack {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.notification-card-title-stack h2 {
  min-width: 0;
  margin: 0;
}

.notification-category-badge {
  width: fit-content;
  max-width: 100%;
  padding: 3px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: .7rem;
  font-weight: 800;
  line-height: 1.2;
}

.notification-settings-form {
  max-width: 820px;
}

.notification-settings-card h2 {
  margin-top: 0;
  color: var(--navy);
}

.notification-settings-note {
  color: #64748b;
  line-height: 1.65;
}

.notification-preference-list {
  margin-top: 18px;
  display: grid;
  gap: 0;
  border-top: 1px solid #e2e8f0;
}

.notification-preference-row {
  min-width: 0;
  padding: 15px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-bottom: 1px solid #e2e8f0;
}

.notification-preference-copy {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.notification-preference-copy strong {
  color: #0f172a;
  overflow-wrap: anywhere;
}

.notification-preference-copy span {
  color: #64748b;
  font-size: .86rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.notification-switch {
  min-width: 74px;
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  cursor: pointer;
  font-weight: 800;
}

.notification-switch input {
  width: 22px;
  height: 22px;
  margin: 0;
}

.notification-switch-label {
  min-width: 28px;
  color: #334155;
  font-size: .82rem;
}

.notification-required-badge {
  flex: none;
  padding: 5px 9px;
  border-radius: 999px;
  background: #ecfdf5;
  color: #047857;
  font-size: .76rem;
  font-weight: 900;
}

.notification-settings-actions {
  margin-top: 16px;
}

@media (max-width: 640px) {
  .notification-toolbar,
  .notification-toolbar-actions,
  .notification-toolbar-actions form,
  .notification-toolbar-actions .ui-button {
    width: 100%;
  }

  .notification-toolbar-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .notification-filter-tabs {
    width: 100%;
  }

  .notification-filter-tab {
    min-width: 0;
    flex: 1 1 0;
  }

  .notification-preference-row {
    align-items: flex-start;
  }

  .notification-switch {
    min-width: 68px;
  }

  .notification-settings-actions,
  .notification-settings-actions .ui-button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-154r3.css ===== */

/* ===== KMA CSS SOURCE 015/101: style-154r4.css ===== */
/* KMA FISHING CLUB 1.54r4 — Notification Stable */

.notification-badge-row {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.notification-important-badge {
  width: fit-content;
  max-width: 100%;
  padding: 3px 8px;
  border-radius: 999px;
  background: #fff7ed;
  color: #9a3412;
  font-size: .7rem;
  font-weight: 900;
  line-height: 1.2;
}

.notification-card.is-unread .notification-important-badge,
.notification-detail-card.is-unread .notification-important-badge {
  background: #ffedd5;
}

.notification-card-link,
.notification-filter-tab,
.notification-toolbar-actions .ui-button,
.notification-detail-actions .ui-button,
.notification-settings-actions .ui-button {
  min-height: 44px;
}

.notification-card-heading time,
.notification-detail-meta time {
  overflow-wrap: anywhere;
}

.notification-detail-meta {
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .notification-card-title-row {
    align-items: flex-start;
  }

  .notification-state-badge {
    margin-left: auto;
  }

  .notification-card-heading time {
    width: 100%;
  }

  .notification-detail-meta time {
    width: 100%;
  }

  .notification-preference-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }
}

@media (max-width: 420px) {
  .notification-toolbar-actions {
    grid-template-columns: 1fr;
  }

  .notification-filter-tab {
    padding-left: 8px;
    padding-right: 8px;
  }

  .notification-preference-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .notification-switch {
    justify-content: flex-start;
  }

  .notification-required-badge {
    justify-self: start;
  }
}
/* ===== END KMA CSS SOURCE: style-154r4.css ===== */

/* ===== KMA CSS SOURCE 016/101: style-155r1.css ===== */
/* KMA FISHING CLUB 1.55r1 — Companion Foundation */
.companion-foundation-row {
  align-items: flex-start;
}

.companion-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.35rem;
}

.companion-id-badge,
.companion-viewer-badge,
.companion-accountless-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.78rem;
  line-height: 1.25;
  background: #eef3f7;
  color: #334155;
}

.companion-viewer-badge {
  background: #e8f3ff;
  color: #174a78;
}

.companion-viewer-badge.is-inactive {
  background: #f4f4f5;
  color: #6b7280;
}

.companion-accountless-badge {
  background: #f5f5f4;
  color: #57534e;
}

.companion-edit-form select,
.companion-add-form select {
  width: 100%;
  min-height: 44px;
}

.companion-edit-form small,
.companion-foundation-addbox small {
  display: block;
  overflow-wrap: anywhere;
}

@media (max-width: 680px) {
  .companion-foundation-row {
    gap: 0.75rem;
  }

  .companion-meta {
    gap: 0.3rem;
  }

  .companion-id-badge,
  .companion-viewer-badge,
  .companion-accountless-badge {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .companion-add-form {
    grid-template-columns: 1fr;
  }

  .companion-add-form button,
  .companion-edit-form button,
  .companion-foundation-row summary {
    min-height: 44px;
  }
}
/* ===== END KMA CSS SOURCE: style-155r1.css ===== */

/* ===== KMA CSS SOURCE 017/101: style-155r2.css ===== */
/* KMA FISHING CLUB 1.55r2 — Per-trip Companion Selection */
.trip-companion-selector {
  margin: 0.35rem 0 0.75rem;
  padding: 0.85rem;
  border: 1px solid #d8e0e7;
  border-radius: 12px;
  background: #f8fafc;
}

.trip-companion-selector[hidden] {
  display: none !important;
}

.trip-companion-selector-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.trip-companion-selector-heading strong {
  font-size: 0.95rem;
}

.trip-companion-selector-heading a {
  font-size: 0.82rem;
  white-space: nowrap;
}

.trip-companion-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 0.5rem;
}

.trip-companion-option {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: 48px;
  margin: 0;
  padding: 0.55rem 0.65rem;
  border: 1px solid #d9e1e8;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}

.trip-companion-option:has(input:checked) {
  border-color: #8bb6dc;
  background: #eef7ff;
}

.trip-companion-option.is-inactive {
  border-style: dashed;
  background: #fafafa;
}

.trip-companion-option input {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  margin: 0;
}

.trip-companion-option-main {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.trip-companion-option-main strong,
.trip-companion-option-main small {
  overflow-wrap: anywhere;
}

.trip-companion-option-main small {
  color: #64748b;
  font-size: 0.76rem;
}

.trip-companion-help {
  display: block;
  margin-top: 0.55rem;
  color: #526273;
  line-height: 1.5;
}

.response-companions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  margin-top: 0.4rem;
}

.response-companions-label {
  font-size: 0.76rem;
  color: #64748b;
}

.response-companion-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  min-height: 28px;
  max-width: 100%;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: #eef7ff;
  color: #174a78;
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}

.response-companion-badge small {
  font-size: 0.66rem;
  opacity: 0.78;
}

@media (max-width: 680px) {
  .trip-companion-selector {
    padding: 0.75rem;
  }

  .trip-companion-selector-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.3rem;
  }

  .trip-companion-selector-heading a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    white-space: normal;
  }

  .trip-companion-options {
    grid-template-columns: 1fr;
  }

  .trip-companion-option {
    min-height: 52px;
  }
}
/* ===== END KMA CSS SOURCE: style-155r2.css ===== */

/* ===== KMA CSS SOURCE 018/101: style-155r3.css ===== */
.attendance-companion-breakdown {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
  margin-top: 8px;
  font-size: 0.84rem;
  line-height: 1.4;
}

.attendance-companion-breakdown > span {
  white-space: nowrap;
}

.attendance-breakdown-label {
  font-weight: 700;
}

.attendance-breakdown-warning,
.response-consistency-warning {
  font-weight: 700;
}

.response-attendance-breakdown {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  margin-top: 6px;
  font-size: 0.8rem;
  line-height: 1.4;
}

.trip-companion-help {
  min-height: 1.4em;
}

@media (max-width: 560px) {
  .attendance-companion-breakdown,
  .response-attendance-breakdown {
    gap: 5px 7px;
  }

  .attendance-companion-breakdown > span,
  .response-attendance-breakdown > span {
    white-space: normal;
  }
}
/* ===== END KMA CSS SOURCE: style-155r3.css ===== */

/* ===== KMA CSS SOURCE 019/101: style-156r1.css ===== */
/* KMA FISHING CLUB 1.56r1 - My Page personal fishing gear foundation */

.fishing-gear-card {
  scroll-margin-top: 1rem;
}

.fishing-gear-list {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.9rem;
}

.fishing-gear-row {
  border: 1px solid rgba(15, 23, 42, 0.13);
  border-radius: 14px;
  padding: 0.9rem;
  background: #fff;
}

.fishing-gear-row.is-favorite {
  border-color: rgba(3, 105, 161, 0.34);
  box-shadow: 0 0 0 2px rgba(14, 165, 233, 0.06);
}

.fishing-gear-heading {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem 0.6rem;
}

.fishing-gear-heading strong {
  min-width: 0;
  overflow-wrap: anywhere;
}

.fishing-gear-category,
.fishing-gear-favorite,
.fishing-gear-id {
  display: inline-flex;
  align-items: center;
  min-height: 1.6rem;
  border-radius: 999px;
  padding: 0.18rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.2;
}

.fishing-gear-category {
  background: rgba(3, 105, 161, 0.1);
  color: #075985;
  font-weight: 700;
}

.fishing-gear-favorite {
  background: rgba(234, 179, 8, 0.15);
  color: #854d0e;
  font-weight: 700;
}

.fishing-gear-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.75rem;
  margin: 0.55rem 0 0;
  color: #475569;
  font-size: 0.9rem;
}

.fishing-gear-notes {
  margin: 0.55rem 0 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: #334155;
}

.fishing-gear-id {
  margin-top: 0.55rem;
  padding-left: 0;
  color: #64748b;
}

.fishing-gear-edit {
  margin-top: 0.7rem;
}

.fishing-gear-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.fishing-gear-check {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 0.55rem;
  min-height: 44px;
}

.fishing-gear-check input {
  width: 1.2rem;
  height: 1.2rem;
  flex: 0 0 auto;
}

.fishing-gear-empty {
  display: grid;
  gap: 0.25rem;
  margin-top: 0.75rem;
  padding: 0.9rem;
  border-radius: 12px;
  background: rgba(241, 245, 249, 0.85);
}

.fishing-gear-add {
  margin-top: 0.85rem;
}

.fishing-gear-archive {
  margin-top: 0.9rem;
}

.fishing-gear-archive-list {
  display: grid;
  gap: 0.6rem;
  margin-top: 0.65rem;
}

.fishing-gear-archive-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.7rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 12px;
}

.fishing-gear-archive-row > div {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}

.fishing-gear-archive-row strong {
  overflow-wrap: anywhere;
}

.fishing-gear-archive-row button {
  min-height: 44px;
  white-space: nowrap;
}

@media (max-width: 640px) {
  .fishing-gear-form-grid {
    grid-template-columns: 1fr;
  }

  .fishing-gear-archive-row {
    align-items: stretch;
    flex-direction: column;
  }

  .fishing-gear-archive-row form,
  .fishing-gear-archive-row button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-156r1.css ===== */

/* ===== KMA CSS SOURCE 020/101: style-156r2.css ===== */
/* KMA FISHING CLUB 1.56r2
   Personal Trip Note foundation / privacy-aware CLUB sharing. */

.personal-trip-note-card,
.club-personal-notes {
  margin: 18px 0;
  padding: 16px;
  border: 1px solid var(--line, #d7dde5);
  border-radius: 14px;
  background: var(--card-bg, #fff);
}

.personal-trip-note-heading,
.club-personal-notes-heading,
.club-personal-note-author {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.personal-trip-note-heading h3,
.club-personal-notes-heading h3 {
  margin: 2px 0 0;
}

.personal-trip-note-kicker {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  opacity: .68;
}

.personal-trip-note-privacy {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: .78rem;
  font-weight: 700;
  background: #eef1f5;
}

.personal-trip-note-privacy.is-club {
  background: #e8f5ed;
}

.personal-trip-note-help {
  margin: 10px 0 14px;
  font-size: .9rem;
  line-height: 1.55;
  opacity: .82;
}

.personal-trip-note-form textarea {
  width: 100%;
  min-height: 132px;
  resize: vertical;
  line-height: 1.55;
}

.personal-trip-note-visibility {
  margin: 14px 0;
  padding: 0;
  border: 0;
}

.personal-trip-note-visibility legend {
  margin-bottom: 8px;
  font-weight: 700;
}

.personal-trip-note-visibility > label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-height: 44px;
  padding: 9px 10px;
  border: 1px solid var(--line, #d7dde5);
  border-radius: 10px;
  margin-bottom: 8px;
}

.personal-trip-note-visibility input {
  margin-top: 4px;
}

.personal-trip-note-visibility span {
  display: grid;
  gap: 2px;
}

.personal-trip-note-visibility small,
.personal-trip-note-updated {
  font-size: .78rem;
  opacity: .72;
}

.club-personal-note-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}

.club-personal-note-item {
  padding: 12px;
  border-radius: 10px;
  background: #f7f8fa;
}

.club-personal-note-author {
  margin-bottom: 7px;
}

.club-personal-note-author small {
  font-size: .76rem;
  opacity: .68;
}

.club-personal-note-item p {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.55;
}

@media (max-width: 640px) {
  .personal-trip-note-card,
  .club-personal-notes {
    padding: 13px;
  }

  .personal-trip-note-heading,
  .club-personal-notes-heading,
  .club-personal-note-author {
    flex-direction: column;
    gap: 5px;
  }

  .personal-trip-note-form button {
    min-height: 44px;
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-156r2.css ===== */

/* ===== KMA CSS SOURCE 021/101: style-156r3.css ===== */

/* 1.56r3 Shared Gear Catalog */
.gear-catalog-page {
  display: grid;
  gap: 16px;
}

.gear-catalog-hero {
  display: flex;
  gap: 18px;
  align-items: flex-start;
  justify-content: space-between;
}

.gear-catalog-hero h1 {
  margin: 4px 0 8px;
}

.gear-catalog-hero p {
  margin: 0;
  max-width: 760px;
}

.gear-catalog-kicker {
  display: inline-block;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .06em;
  opacity: .7;
}

.gear-catalog-my-page-link {
  flex: 0 0 auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.gear-catalog-summary {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 0 4px;
}

.gear-catalog-summary strong {
  font-size: 1.25rem;
}

.gear-catalog-category-stack {
  display: grid;
  gap: 14px;
}

.gear-catalog-category-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.gear-catalog-category-heading h2,
.gear-catalog-category-heading h3,
.gear-catalog-category-heading p {
  margin: 0;
}

.gear-catalog-category-heading span {
  white-space: nowrap;
  font-size: .86rem;
  font-weight: 700;
}

.gear-catalog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 10px;
}

.gear-catalog-item,
.gear-catalog-candidate {
  min-width: 0;
  border: 1px solid rgba(127, 127, 127, .25);
  border-radius: 12px;
  padding: 12px;
}

.gear-catalog-item-heading {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 7px;
}

.gear-catalog-item-heading strong,
.gear-catalog-candidate strong,
.gear-catalog-item dd {
  overflow-wrap: anywhere;
}

.gear-catalog-source {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 700;
  background: rgba(127, 127, 127, .12);
}

.gear-catalog-item dl {
  display: grid;
  gap: 4px;
  margin: 10px 0;
}

.gear-catalog-item dl div {
  display: grid;
  grid-template-columns: minmax(72px, .45fr) 1fr;
  gap: 8px;
}

.gear-catalog-item dt {
  font-size: .78rem;
  opacity: .72;
}

.gear-catalog-item dd {
  margin: 0;
}

.gear-catalog-empty,
.gear-catalog-no-candidate {
  margin: 0;
  opacity: .78;
}

.gear-catalog-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.gear-catalog-candidate-review {
  margin-top: 16px;
  border-top: 1px solid rgba(127, 127, 127, .2);
  padding-top: 16px;
}

.gear-catalog-candidate-list {
  display: grid;
  gap: 8px;
  margin: 12px 0;
}

.gear-catalog-candidate {
  display: grid;
  gap: 4px;
}

.gear-catalog-candidate.is-exact {
  border-width: 2px;
}

.gear-catalog-candidate b {
  font-size: .8rem;
}

.gear-catalog-create-confirm {
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

.gear-catalog-create-confirm p {
  margin: 0;
  overflow-wrap: anywhere;
}

.gear-catalog-create-confirm button,
.gear-catalog-check-form button {
  min-height: 44px;
}

.shared-gear-entry-card .form-actions {
  margin-top: 10px;
}

.shared-gear-entry-card .secondary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 720px) {
  .gear-catalog-hero {
    display: grid;
  }

  .gear-catalog-my-page-link {
    width: 100%;
  }

  .gear-catalog-form-grid {
    grid-template-columns: 1fr;
  }

  .gear-catalog-category-heading {
    align-items: baseline;
  }

  .gear-catalog-item dl div {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}
/* ===== END KMA CSS SOURCE: style-156r3.css ===== */

/* ===== KMA CSS SOURCE 022/101: style-156r4.css ===== */
/* 1.56r4 Shared Gear Catalog search / category filtering */
.gear-catalog-search .gear-catalog-category-heading {
  margin-bottom: 14px;
}

.gear-catalog-search-form {
  display: grid;
  grid-template-columns: minmax(150px, .7fr) minmax(170px, .9fr) minmax(220px, 1.5fr);
  gap: 12px;
  align-items: end;
}

.gear-catalog-search-form label {
  min-width: 0;
}

.gear-catalog-search-form select,
.gear-catalog-search-form input {
  width: 100%;
}

.gear-catalog-search-actions {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.gear-catalog-search-actions .primary,
.gear-catalog-search-actions .secondary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.gear-catalog-no-results p {
  margin-bottom: 0;
}

.gear-catalog-item .gear-catalog-source {
  white-space: nowrap;
}

@media (max-width: 760px) {
  .gear-catalog-search-form {
    grid-template-columns: 1fr;
  }

  .gear-catalog-search-actions {
    grid-column: auto;
  }

  .gear-catalog-search-actions .primary,
  .gear-catalog-search-actions .secondary {
    flex: 1 1 140px;
  }
}
/* ===== END KMA CSS SOURCE: style-156r4.css ===== */

/* ===== KMA CSS SOURCE 023/101: style-156r5.css ===== */
/* KMA FISHING CLUB 1.56r5 - Personal Gear / Shared Catalog ownership */

.gear-catalog-owned-badge,
.fishing-gear-catalog-badge,
.fishing-gear-visibility {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: .74rem;
  font-weight: 700;
  line-height: 1.2;
}

.gear-catalog-owned-badge {
  background: rgba(14, 116, 144, .12);
  color: #155e75;
}

.fishing-gear-catalog-badge {
  background: rgba(14, 116, 144, .12);
  color: #155e75;
}

.fishing-gear-catalog-badge.is-manual {
  background: rgba(100, 116, 139, .12);
  color: #475569;
}

.fishing-gear-visibility.is-private {
  background: rgba(100, 116, 139, .12);
  color: #475569;
}

.fishing-gear-visibility.is-club {
  background: rgba(22, 163, 74, .12);
  color: #166534;
}

.fishing-gear-catalog-product,
.fishing-gear-readonly-product {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .3rem .65rem;
  margin: .6rem 0 0;
  padding: .65rem .75rem;
  border-radius: 10px;
  background: rgba(241, 245, 249, .9);
}

.fishing-gear-catalog-product > span:first-child,
.fishing-gear-readonly-product > span:first-child {
  font-size: .78rem;
  font-weight: 700;
  color: #64748b;
}

.fishing-gear-catalog-product strong,
.fishing-gear-readonly-product strong {
  overflow-wrap: anywhere;
}

.fishing-gear-readonly-product {
  display: grid;
  gap: .2rem;
}

.fishing-gear-catalog-cta {
  display: grid;
  gap: .35rem;
  margin-top: .85rem;
}

.fishing-gear-catalog-cta .primary {
  min-height: 44px;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.fishing-gear-manual-add {
  margin-top: 1rem;
}

.gear-catalog-public-owners {
  display: grid;
  gap: .5rem;
  margin: .75rem 0;
  padding: .7rem;
  border-radius: 10px;
  background: rgba(240, 253, 244, .75);
}

.gear-catalog-public-owners > strong {
  font-size: .86rem;
}

.gear-catalog-owner-list {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.gear-catalog-owner {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .28rem;
  padding: .35rem .55rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid rgba(22, 163, 74, .16);
  font-size: .82rem;
}

.gear-catalog-owner small {
  color: #475569;
}

.gear-catalog-owner b {
  font-size: .7rem;
  color: #166534;
}

.gear-catalog-add-personal {
  margin: .8rem 0 .55rem;
  border-top: 1px solid rgba(127, 127, 127, .18);
  padding-top: .7rem;
}

.gear-catalog-add-personal > summary {
  cursor: pointer;
  font-weight: 700;
  min-height: 40px;
  display: flex;
  align-items: center;
}

.gear-catalog-add-personal-form {
  margin-top: .7rem;
}

.gear-catalog-add-personal-form textarea {
  resize: vertical;
}

.gear-catalog-item-id {
  display: inline-block;
  margin-top: .35rem;
  color: #64748b;
}

@media (max-width: 640px) {
  .fishing-gear-catalog-cta .primary {
    width: 100%;
  }

  .gear-catalog-owner {
    width: 100%;
    border-radius: 10px;
  }

  .gear-catalog-add-personal-form .form-actions,
  .gear-catalog-add-personal-form .form-actions button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-156r5.css ===== */

/* ===== KMA CSS SOURCE 024/101: style-156r6.css ===== */
/* KMA FISHING CLUB 1.56r6 - Reel Line History */

.reel-line-summary {
  display: grid;
  gap: .35rem;
  margin-top: .75rem;
  padding: .7rem .8rem;
  border-radius: 10px;
  background: rgba(239, 246, 255, .85);
  border: 1px solid rgba(37, 99, 235, .12);
}

.reel-line-summary-heading,
.reel-line-history-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem .65rem;
}

.reel-line-summary-heading > span {
  color: #64748b;
  font-size: .78rem;
}

.reel-line-summary p,
.reel-line-history-row p {
  margin: 0;
  overflow-wrap: anywhere;
}

.reel-line-empty {
  color: #64748b;
}

.reel-line-private-note {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: #475569;
}

.reel-line-panel {
  margin-top: .7rem;
  border-top: 1px solid rgba(127, 127, 127, .18);
  padding-top: .45rem;
}

.reel-line-panel > summary {
  cursor: pointer;
  min-height: 40px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  font-weight: 700;
}

.reel-line-panel > summary > span {
  font-size: .75rem;
  color: #64748b;
}

.reel-line-panel-body {
  display: grid;
  gap: .8rem;
  margin-top: .65rem;
}

.reel-line-add-form {
  padding: .75rem;
  border-radius: 10px;
  background: rgba(248, 250, 252, .9);
}

.reel-line-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
}

.reel-line-spec-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.reel-line-history-list {
  display: grid;
  gap: .55rem;
}

.reel-line-history-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .7rem;
  align-items: center;
  padding: .65rem .7rem;
  border-radius: 10px;
  border: 1px solid rgba(100, 116, 139, .15);
  background: #fff;
}

.reel-line-history-row.is-current {
  border-color: rgba(37, 99, 235, .22);
  background: rgba(239, 246, 255, .65);
}

.reel-line-history-row.is-disabled {
  opacity: .78;
  background: rgba(248, 250, 252, .8);
}

.reel-line-history-main {
  min-width: 0;
  display: grid;
  gap: .25rem;
}

.reel-line-current-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(37, 99, 235, .12);
  color: #1d4ed8;
  font-size: .72rem;
  font-weight: 700;
}

.reel-line-disabled-history {
  border-top: 1px solid rgba(127, 127, 127, .16);
  padding-top: .5rem;
}

.reel-line-disabled-history > summary {
  cursor: pointer;
  min-height: 38px;
  display: flex;
  align-items: center;
  font-weight: 700;
}

.gear-catalog-owner-current-line {
  flex-basis: 100%;
  padding-top: .15rem;
  color: #0f766e !important;
  font-weight: 600;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .reel-line-spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .reel-line-form-grid,
  .reel-line-spec-grid {
    grid-template-columns: 1fr;
  }

  .reel-line-history-row {
    grid-template-columns: 1fr;
  }

  .reel-line-history-row form,
  .reel-line-history-row form button {
    width: 100%;
  }

  .reel-line-add-form .form-actions,
  .reel-line-add-form .form-actions button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-156r6.css ===== */

/* ===== KMA CSS SOURCE 025/101: style-156r7.css ===== */
/* KMA FISHING CLUB 1.56r7 - Personal Trip Note UX */

.personal-note-hub-card {
  overflow: hidden;
}

.personal-note-counts {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin: .75rem 0 1rem;
}

.personal-note-counts span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .35rem .65rem;
  border-radius: 999px;
  background: rgba(100, 116, 139, .1);
  font-size: .82rem;
}

.personal-note-preview-list,
.personal-note-history-list {
  display: grid;
  gap: .8rem;
}

.personal-note-preview-item {
  padding: .8rem;
  border: 1px solid rgba(100, 116, 139, .16);
  border-radius: 12px;
  background: rgba(248, 250, 252, .85);
}

.personal-note-preview-heading,
.personal-note-preview-meta,
.personal-note-history-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
}

.personal-note-preview-heading > div,
.personal-note-history-heading > div {
  display: grid;
  gap: .2rem;
  min-width: 0;
}

.personal-note-preview-heading time,
.personal-note-history-heading time {
  font-size: .76rem;
  color: #64748b;
}

.personal-note-preview-heading strong,
.personal-note-history-heading h2 {
  overflow-wrap: anywhere;
}

.personal-note-preview-item > p {
  margin: .7rem 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.personal-note-preview-meta {
  align-items: center;
  flex-wrap: wrap;
}

.personal-note-preview-meta small {
  color: #64748b;
}

.personal-note-hub-actions {
  margin-top: 1rem;
  flex-wrap: wrap;
}

.personal-trip-note-timestamps {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .8rem;
  margin: .55rem 0 0;
  font-size: .78rem;
  color: #64748b;
}

.personal-trip-note-actions {
  flex-wrap: wrap;
}

.personal-note-page {
  display: grid;
  gap: 1rem;
}

.personal-note-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.personal-note-page-header h1 {
  margin: .2rem 0 .4rem;
}

.personal-note-page-header p {
  margin: 0;
  line-height: 1.6;
}

.personal-note-summary-card {
  display: grid;
  gap: 1rem;
}

.personal-note-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .6rem;
}

.personal-note-summary-grid a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  min-height: 52px;
  padding: .7rem .8rem;
  border: 1px solid rgba(100, 116, 139, .18);
  border-radius: 11px;
  text-decoration: none;
  color: inherit;
  background: rgba(248, 250, 252, .85);
}

.personal-note-summary-grid a.is-active {
  border-color: rgba(14, 116, 144, .42);
  background: rgba(14, 116, 144, .08);
}

.personal-note-summary-grid strong {
  font-size: 1.05rem;
}

.personal-note-search-form {
  display: grid;
  gap: .7rem;
}

.personal-note-search-form input[type="search"] {
  width: 100%;
}

.personal-note-history-item {
  display: grid;
  gap: .8rem;
}

.personal-note-history-heading h2 {
  margin: 0;
  font-size: 1.05rem;
}

.personal-note-history-heading small {
  color: #64748b;
}

.personal-note-history-body {
  margin: 0;
  padding: .85rem;
  border-radius: 10px;
  background: rgba(248, 250, 252, .9);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.65;
}

.personal-note-history-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem 1.25rem;
  margin: 0;
}

.personal-note-history-meta > div {
  display: flex;
  gap: .35rem;
}

.personal-note-history-meta dt {
  font-size: .78rem;
  font-weight: 700;
  color: #64748b;
}

.personal-note-history-meta dd {
  margin: 0;
  font-size: .78rem;
}

.personal-note-empty {
  text-align: center;
}

.personal-trip-note-form textarea {
  min-height: 150px;
  font-size: 16px;
  overflow-wrap: anywhere;
}

@media (max-width: 640px) {
  .personal-note-page-header,
  .personal-note-preview-heading,
  .personal-note-history-heading {
    flex-direction: column;
  }

  .personal-note-page-header > .secondary {
    width: 100%;
    justify-content: center;
  }

  .personal-note-summary-grid {
    grid-template-columns: 1fr;
  }

  .personal-note-preview-meta {
    align-items: flex-start;
    flex-direction: column;
  }

  .personal-note-hub-actions,
  .personal-note-hub-actions a,
  .personal-trip-note-actions,
  .personal-trip-note-actions > * {
    width: 100%;
  }

  .personal-note-history-item .form-actions,
  .personal-note-history-item .form-actions a {
    width: 100%;
  }

  .personal-note-history-meta {
    display: grid;
    gap: .3rem;
  }
}
/* ===== END KMA CSS SOURCE: style-156r7.css ===== */

/* ===== KMA CSS SOURCE 026/101: style-156r8.css ===== */
/* KMA FISHING CLUB 1.56r8 — My Page Integration */

.my-page-hub-card {
  scroll-margin-top: 1rem;
}

.my-page-hub-heading {
  align-items: flex-start;
}

.my-page-hub-heading .my-page-help {
  margin: .35rem 0 0;
}

.my-page-hub-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.my-page-hub-item {
  display: flex;
  min-width: 0;
  min-height: 7.25rem;
  flex-direction: column;
  gap: .35rem;
  padding: .9rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .8rem;
  background: var(--card, #fff);
  color: inherit;
  text-decoration: none;
}

.my-page-hub-item:hover,
.my-page-hub-item:focus-visible {
  border-color: currentColor;
  outline: none;
}

.my-page-hub-label {
  font-size: .82rem;
  font-weight: 700;
  opacity: .72;
}

.my-page-hub-item strong {
  overflow-wrap: anywhere;
  font-size: 1rem;
}

.my-page-hub-item small {
  margin-top: auto;
  overflow-wrap: anywhere;
  line-height: 1.45;
  opacity: .76;
}

.my-page-hub-secondary {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem 1rem;
  margin-top: .9rem;
  padding-top: .85rem;
  border-top: 1px solid var(--border, #d7dde5);
}

.my-page-hub-secondary a {
  font-weight: 700;
}

.my-page-privacy-card,
#profile,
#personal-notes,
#shared-gear,
#gear,
#companions,
#viewers,
#year-status,
#account-settings {
  scroll-margin-top: 1rem;
}

.my-page-privacy-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-top: .9rem;
}

.my-page-privacy-summary > div {
  display: grid;
  gap: .3rem;
  min-width: 0;
  padding: .85rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .75rem;
}

.my-page-privacy-summary span {
  font-size: .85rem;
  font-weight: 700;
  opacity: .72;
}

.my-page-privacy-summary strong,
.my-page-privacy-summary small {
  overflow-wrap: anywhere;
}

.my-page-privacy-summary .text-link {
  margin-top: .25rem;
  justify-self: start;
}

@media (max-width: 900px) {
  .my-page-hub-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .my-page-hub-grid,
  .my-page-privacy-summary {
    grid-template-columns: 1fr;
  }

  .my-page-hub-item {
    min-height: 0;
  }

  .my-page-hub-secondary {
    display: grid;
    grid-template-columns: 1fr;
  }
}
/* ===== END KMA CSS SOURCE: style-156r8.css ===== */

/* ===== KMA CSS SOURCE 027/101: style-156r9.css ===== */
/* KMA FISHING CLUB 1.56r9 — Gear Catalog Quality / Duplicate Control */

.gear-catalog-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: center;
}

.gear-catalog-candidate-title,
.gear-catalog-match-reasons {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
  align-items: center;
}

.gear-catalog-candidate-title strong {
  overflow-wrap: anywhere;
}

.gear-catalog-match-reasons {
  margin-top: .35rem;
}

.gear-catalog-match-reasons > span,
.gear-catalog-match-reasons > small,
.gear-catalog-match-reasons > b {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(14, 116, 144, .10);
  font-size: .72rem;
  line-height: 1.25;
}

.gear-catalog-match-reasons > b {
  background: rgba(185, 28, 28, .10);
  color: #991b1b;
}

.gear-catalog-candidate-link {
  margin-top: .55rem;
  width: fit-content;
}

.catalog-quality-page {
  display: grid;
  gap: 1rem;
}

.catalog-quality-hero {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
}

.catalog-quality-hero h1 {
  margin-bottom: .45rem;
}

.catalog-quality-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .7rem;
}

.catalog-quality-summary > div {
  display: grid;
  gap: .2rem;
  min-width: 0;
  padding: .85rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .8rem;
  background: var(--card, #fff);
}

.catalog-quality-summary strong {
  font-size: 1.35rem;
}

.catalog-quality-summary span {
  font-size: .78rem;
  font-weight: 700;
  opacity: .72;
  overflow-wrap: anywhere;
}

.catalog-quality-policy ul {
  margin-bottom: 0;
  padding-left: 1.2rem;
}

.catalog-quality-policy li + li {
  margin-top: .45rem;
}

.catalog-quality-section {
  scroll-margin-top: 1rem;
}

.catalog-quality-group-stack {
  display: grid;
  gap: 1rem;
  margin-top: .9rem;
}

.catalog-quality-group {
  display: grid;
  gap: .65rem;
  padding: .85rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .8rem;
  background: rgba(248, 250, 252, .7);
}

.catalog-quality-group-heading,
.catalog-quality-item-heading {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .75rem;
  justify-content: space-between;
  align-items: flex-start;
}

.catalog-quality-group-heading > span,
.catalog-quality-id {
  font-size: .76rem;
  font-weight: 700;
  color: #64748b;
}

.catalog-quality-item-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}

.catalog-quality-item {
  display: grid;
  gap: .65rem;
  min-width: 0;
  padding: .8rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .75rem;
  background: #fff;
}

.catalog-quality-item.is-archived {
  background: rgba(241, 245, 249, .75);
}

.catalog-quality-item-heading > div {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem .55rem;
  align-items: center;
  min-width: 0;
}

.catalog-quality-item-heading strong {
  overflow-wrap: anywhere;
}

.catalog-quality-item dl {
  display: grid;
  gap: .35rem;
  margin: 0;
}

.catalog-quality-item dl > div {
  display: grid;
  grid-template-columns: minmax(6rem, .7fr) minmax(0, 1.6fr);
  gap: .5rem;
}

.catalog-quality-item dt {
  color: #64748b;
  font-size: .78rem;
  font-weight: 700;
}

.catalog-quality-item dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.catalog-quality-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  align-items: flex-start;
}

.catalog-quality-archive {
  flex: 1 1 15rem;
  padding: .55rem .65rem;
  border: 1px solid rgba(185, 28, 28, .18);
  border-radius: .65rem;
}

.catalog-quality-archive > summary {
  cursor: pointer;
  font-weight: 700;
}

.catalog-quality-archive p {
  margin: .55rem 0;
}

.catalog-quality-ok {
  margin-bottom: 0;
  padding: .75rem;
  border-radius: .65rem;
  background: rgba(22, 163, 74, .08);
}

.catalog-maker-variation-list {
  display: grid;
  gap: .65rem;
  margin-top: .8rem;
}

.catalog-maker-variation-list article {
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  align-items: flex-start;
  padding: .75rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .7rem;
}

.catalog-maker-variation-list article > div {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  justify-content: flex-end;
}

.catalog-maker-variation-list span {
  display: inline-flex;
  gap: .3rem;
  align-items: baseline;
  padding: .25rem .5rem;
  border-radius: 999px;
  background: rgba(14, 116, 144, .08);
}

.catalog-quality-all-items > summary {
  cursor: pointer;
  min-height: 42px;
  display: flex;
  align-items: center;
  font-weight: 700;
}

.catalog-quality-all-items[open] > summary {
  margin-bottom: .75rem;
}

@media (max-width: 900px) {
  .catalog-quality-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-quality-item-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .gear-catalog-hero-actions,
  .catalog-quality-hero,
  .catalog-quality-actions,
  .catalog-maker-variation-list article {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gear-catalog-hero-actions .secondary,
  .catalog-quality-hero > .secondary,
  .catalog-quality-actions .secondary,
  .catalog-quality-actions form,
  .catalog-quality-actions button {
    width: 100%;
  }

  .catalog-quality-summary {
    grid-template-columns: 1fr;
  }

  .catalog-quality-item dl > div {
    grid-template-columns: 1fr;
    gap: .1rem;
  }

  .catalog-maker-variation-list article > div {
    justify-content: flex-start;
  }

  .gear-catalog-candidate-link {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-156r9.css ===== */

/* ===== KMA CSS SOURCE 028/101: style-156r10.css ===== */
/* KMA FISHING CLUB 1.56r10 — Web Gear Candidate Search */

.gear-web-page {
  display: grid;
  gap: 1rem;
}

.gear-web-hero {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
}

.gear-web-hero h1 {
  margin-bottom: .45rem;
}

.gear-web-policy ul {
  margin-bottom: 0;
  padding-left: 1.2rem;
}

.gear-web-policy li + li {
  margin-top: .45rem;
}

.gear-web-search-form {
  display: grid;
  gap: .8rem;
}

.gear-web-official-hint,
.gear-web-browser-fallback {
  margin: .8rem 0 0;
}

.gear-web-official-hint span {
  display: inline-flex;
  margin: .15rem .25rem .15rem 0;
  padding: .2rem .45rem;
  border-radius: 999px;
  background: rgba(22, 163, 74, .09);
  font-size: .78rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.gear-web-provider-note {
  margin-top: .8rem;
  padding: .6rem .7rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .7rem;
}

.gear-web-provider-note > summary {
  cursor: pointer;
  font-weight: 700;
}

.gear-web-provider-note p {
  margin: .5rem 0 0;
}

.gear-web-result-list {
  display: grid;
  gap: .9rem;
  margin-top: .85rem;
}

.gear-web-result {
  display: grid;
  gap: .75rem;
  padding: .9rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .8rem;
  background: #fff;
}

.gear-web-result.is-official {
  border-color: rgba(22, 163, 74, .34);
  box-shadow: 0 0 0 1px rgba(22, 163, 74, .06);
}

.gear-web-result-heading {
  display: flex;
  gap: .75rem;
  justify-content: space-between;
  align-items: flex-start;
}

.gear-web-result-heading > div {
  display: grid;
  gap: .35rem;
  min-width: 0;
}

.gear-web-result-heading strong {
  overflow-wrap: anywhere;
}

.gear-web-source {
  width: fit-content;
  padding: .18rem .45rem;
  border-radius: 999px;
  background: rgba(71, 85, 105, .10);
  color: #475569;
  font-size: .72rem;
  font-weight: 800;
}

.gear-web-source.is-official {
  background: rgba(22, 163, 74, .12);
  color: #166534;
}

.gear-web-domain {
  max-width: 45%;
  color: #64748b;
  font-size: .76rem;
  font-weight: 700;
  overflow-wrap: anywhere;
  text-align: right;
}

.gear-web-snippet {
  margin: 0;
  color: #475569;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.gear-web-result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.gear-web-use-form {
  display: grid;
  gap: .65rem;
  padding-top: .75rem;
  border-top: 1px solid var(--border, #d7dde5);
}

.gear-web-use-form label {
  display: grid;
  gap: .35rem;
}

.gear-web-use-form input {
  width: 100%;
}

.gear-web-use-form small {
  color: #64748b;
  line-height: 1.5;
}

.gear-web-use-form button {
  width: fit-content;
}

.gear-web-empty {
  margin-top: .8rem;
  padding: .85rem;
  border-radius: .75rem;
  background: rgba(241, 245, 249, .7);
}

.gear-web-search-inline {
  margin-bottom: 0;
}

@media (max-width: 640px) {
  .gear-web-hero,
  .gear-web-result-heading {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gear-web-hero > .secondary,
  .gear-web-result-actions .secondary,
  .gear-web-use-form button {
    width: 100%;
  }

  .gear-web-domain {
    max-width: none;
    text-align: left;
  }
}
/* ===== END KMA CSS SOURCE: style-156r10.css ===== */

/* ===== KMA CSS SOURCE 029/101: style-156r12.css ===== */
/* ==========================================================================
   1.56r12 - GAME Launch Link
   A compact, clearly separated link from CLUB Home to the public GAME PLAY
   service.  GAME remains a separate product and opens in a new browser tab.
   ========================================================================== */

.game-launch-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: -2px 0 18px;
  padding: 16px 18px;
  border: 1px solid #c7d2fe;
  border-radius: 18px;
  background:
    linear-gradient(135deg, rgba(238, 242, 255, .96), rgba(240, 249, 255, .96)),
    #fff;
  box-shadow: 0 8px 22px rgba(15, 23, 42, .06);
}

.game-launch-copy {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 14px;
}

.game-launch-mark {
  flex: 0 0 auto;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #172554;
  color: #fff;
  font-size: 1.45rem;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12);
}

.game-launch-text {
  min-width: 0;
}

.game-launch-kicker {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 0 0 3px;
  color: #4338ca;
  font-size: .69rem;
  font-weight: 900;
  letter-spacing: .08em;
}

.game-launch-kicker span {
  padding: 2px 7px;
  border: 1px solid #c7d2fe;
  border-radius: 999px;
  background: rgba(255, 255, 255, .76);
  color: #475569;
  font-size: .66rem;
  letter-spacing: 0;
}

.game-launch-card h2 {
  margin: 0;
  color: #172554;
  font-size: clamp(1.08rem, 3vw, 1.28rem);
  line-height: 1.35;
}

.game-launch-text > p:last-child {
  margin: 4px 0 0;
  color: #475569;
  font-size: .82rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.game-launch-button {
  flex: 0 0 auto;
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 10px 16px;
  border: 1px solid #1e3a8a;
  border-radius: 12px;
  background: #1e3a8a;
  color: #fff;
  font-weight: 900;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 5px 14px rgba(30, 58, 138, .18);
}

.game-launch-button:hover,
.game-launch-button:focus-visible {
  background: #172554;
  border-color: #172554;
  color: #fff;
}

.game-launch-button:focus-visible {
  outline: 3px solid rgba(59, 130, 246, .28);
  outline-offset: 2px;
}

@media (max-width: 620px) {
  .game-launch-card {
    align-items: stretch;
    flex-direction: column;
    gap: 13px;
    margin-bottom: 13px;
    padding: 15px;
  }

  .game-launch-copy {
    align-items: flex-start;
  }

  .game-launch-mark {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    font-size: 1.28rem;
  }

  .game-launch-button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-156r12.css ===== */

/* ===== KMA CSS SOURCE 030/101: style-156r13.css ===== */
/* ==========================================================================
   1.56r13 - Compact GAME Link
   Keep the GAME launch available while reducing its visual weight on CLUB Home.
   ========================================================================== */

.game-launch-card {
  min-height: 0;
  gap: 7px;
  margin: 0 0 9px;
  padding: 4px 7px;
  border-color: #e2e8f0;
  border-radius: 9px;
  background: #f8fafc;
  box-shadow: none;
}

.game-launch-copy {
  min-width: 0;
  gap: 7px;
  align-items: center;
}

.game-launch-mark {
  width: 22px;
  height: 22px;
  border-radius: 7px;
  background: #e2e8f0;
  color: #475569;
  font-size: .74rem;
  box-shadow: none;
}

.game-launch-text {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.game-launch-card h2 {
  margin: 0;
  color: #475569;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.05;
  white-space: nowrap;
}

.game-launch-kicker {
  margin: 0;
  padding: 1px 5px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
  font-size: .54rem;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.2;
  white-space: nowrap;
}

.game-launch-button {
  min-height: 24px;
  gap: 3px;
  padding: 2px 7px;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  color: #64748b;
  font-size: .64rem;
  font-weight: 800;
  box-shadow: none;
}

.game-launch-button:hover,
.game-launch-button:focus-visible {
  background: #f1f5f9;
  border-color: #94a3b8;
  color: #334155;
}

.game-launch-button:focus-visible {
  outline: 2px solid rgba(100, 116, 139, .22);
  outline-offset: 1px;
}

@media (max-width: 620px) {
  .game-launch-card {
    flex-direction: row;
    align-items: center;
    gap: 5px;
    margin-bottom: 8px;
    padding: 4px 6px;
  }

  .game-launch-copy {
    gap: 6px;
  }

  .game-launch-mark {
    width: 21px;
    height: 21px;
    border-radius: 6px;
    font-size: .70rem;
  }

  .game-launch-card h2 {
    font-size: .68rem;
  }

  .game-launch-kicker {
    padding: 1px 4px;
    font-size: .50rem;
  }

  .game-launch-button {
    width: auto;
    min-height: 23px;
    padding: 2px 6px;
    font-size: .61rem;
  }
}

@media (max-width: 390px) {
  .game-launch-kicker {
    display: none;
  }
}

@media (max-width: 350px) {
  .game-launch-mark {
    display: none;
  }
}
/* ===== END KMA CSS SOURCE: style-156r13.css ===== */

/* ===== KMA CSS SOURCE 031/101: style-156r14.css ===== */
/* ==========================================================================
   1.56r14 - Confirmed Full-Bar GAME Launch
   Make the entire compact GAME strip clickable while retaining its secondary
   visual weight on CLUB Home.
   ========================================================================== */

.game-launch-link {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color .14s ease,
    border-color .14s ease,
    box-shadow .14s ease;
}

.game-launch-link:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: inherit;
}

.game-launch-link:focus-visible {
  outline: 2px solid rgba(100, 116, 139, .30);
  outline-offset: 2px;
  background: #f1f5f9;
  border-color: #94a3b8;
}

.game-launch-link .game-launch-button {
  pointer-events: none;
}

.game-launch-link:hover .game-launch-button,
.game-launch-link:focus-visible .game-launch-button {
  background: #fff;
  border-color: #94a3b8;
  color: #334155;
}
/* ===== END KMA CSS SOURCE: style-156r14.css ===== */

/* ===== KMA CSS SOURCE 032/101: style-156r15.css ===== */
/* ==========================================================================
   1.56r15 - BITE & DISCOVERY GAME Banner
   Keep the compact full-bar GAME launch while adding a soft brand tint and a
   continuously scrolling catchphrase. The title and GAME action stay fixed.
   ========================================================================== */

.game-brand-banner {
  overflow: hidden;
  border-color: #bae6fd;
  background:
    linear-gradient(90deg, rgba(239, 246, 255, .98), rgba(236, 254, 255, .98));
  box-shadow: inset 3px 0 0 rgba(14, 165, 233, .26);
}

.game-brand-banner:hover,
.game-brand-banner:focus-visible {
  background:
    linear-gradient(90deg, rgba(224, 242, 254, .98), rgba(236, 254, 255, 1));
  border-color: #7dd3fc;
}

.game-brand-banner .game-launch-copy {
  flex: 0 0 auto;
}

.game-brand-banner .game-launch-mark {
  background: #e0f2fe;
  color: #0369a1;
}

.game-brand-banner .game-launch-text {
  flex: 0 0 auto;
}

.game-brand-banner .game-launch-card h2,
.game-brand-banner h2 {
  color: #0c4a6e;
  letter-spacing: .015em;
}

.game-brand-banner .game-launch-kicker {
  border-color: #bae6fd;
  background: rgba(255, 255, 255, .78);
  color: #0369a1;
}

.game-brand-banner .game-launch-button {
  border-color: #7dd3fc;
  background: rgba(255, 255, 255, .86);
  color: #075985;
}

.game-brand-banner:hover .game-launch-button,
.game-brand-banner:focus-visible .game-launch-button {
  border-color: #38bdf8;
  background: #fff;
  color: #0c4a6e;
}

.game-launch-marquee {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  white-space: nowrap;
  mask-image: linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 16px), transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 16px, #000 calc(100% - 16px), transparent);
}

.game-launch-marquee-track {
  display: flex;
  width: max-content;
  align-items: center;
  animation: game-launch-marquee 24s linear infinite;
  will-change: transform;
}

.game-launch-marquee-track span {
  flex: 0 0 auto;
  padding-right: 3.5rem;
  color: #0e7490;
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.15;
}

.game-brand-banner:hover .game-launch-marquee-track,
.game-brand-banner:focus-visible .game-launch-marquee-track {
  animation-play-state: paused;
}

@keyframes game-launch-marquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

@media (max-width: 620px) {
  .game-brand-banner {
    gap: 5px;
  }

  .game-brand-banner .game-launch-text {
    gap: 4px;
  }

  .game-brand-banner h2 {
    font-size: .67rem;
  }

  .game-launch-marquee-track {
    animation-duration: 20s;
  }

  .game-launch-marquee-track span {
    padding-right: 2.75rem;
    font-size: .58rem;
  }
}

@media (max-width: 430px) {
  .game-brand-banner .game-launch-kicker {
    display: none;
  }
}

@media (max-width: 350px) {
  .game-launch-marquee-track span {
    font-size: .56rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .game-launch-marquee {
    mask-image: none;
    -webkit-mask-image: none;
  }

  .game-launch-marquee-track {
    width: auto;
    animation: none;
    transform: none;
  }

  .game-launch-marquee-track span {
    overflow: hidden;
    max-width: 100%;
    padding-right: 0;
    text-overflow: ellipsis;
  }

  .game-launch-marquee-track span + span {
    display: none;
  }
}
/* ===== END KMA CSS SOURCE: style-156r15.css ===== */

/* ===== KMA CSS SOURCE 033/101: style-158r1.css ===== */
.photo-search{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:18px;padding:16px}
.photo-search label{display:flex;flex-direction:column;gap:6px;min-width:0}
.photo-search label:first-child{flex:1 1 240px}
.photo-search input,.photo-search select{box-sizing:border-box;width:100%;min-height:44px;padding:10px;border:1px solid #94a3b8;border-radius:8px;font:inherit;background:#fff;color:#172b42}
.photo-search button,.photo-pagination a{min-height:44px}
.photo-search a{padding:10px 0}
.photo-pagination{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin:24px 0}
@media(max-width:480px){.photo-search label{flex:1 1 100%}.photo-search button{width:100%}}
/* ===== END KMA CSS SOURCE: style-158r1.css ===== */

/* ===== KMA CSS SOURCE 034/101: style-159r2.css ===== */
.site-update-notice{margin:12px 0;padding:16px;border:1px solid #0369a1;border-radius:12px;background:#f0f9ff;color:#0c4a6e}
.site-update-notice[hidden]{display:none!important}
.site-update-notice p{margin:0 0 12px}
.site-update-actions{display:flex;gap:12px;flex-wrap:wrap}
.site-update-actions button{min-height:44px}
/* ===== END KMA CSS SOURCE: style-159r2.css ===== */

/* ===== KMA CSS SOURCE 035/101: style-159r3.css ===== */
.site-connection-notice{margin:12px 0;padding:16px;border:1px solid #a16207;border-radius:12px;background:#fffbeb;color:#713f12}
.site-connection-notice[hidden],#site-connection-dismiss[hidden]{display:none!important}
.site-connection-notice[data-state="ok"]{border-color:#047857;background:#ecfdf5;color:#064e3b}
.site-connection-notice p{margin:0 0 12px}
/* ===== END KMA CSS SOURCE: style-159r3.css ===== */

/* ===== KMA CSS SOURCE 036/101: style-160r6.css ===== */
/* KMA FISHING CLUB 1.60r6 notification UX */
.notification-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(10rem, .8fr) auto auto;
  gap: .75rem;
  align-items: end;
  margin: 1rem 0;
}
.notification-search-form label {
  display: grid;
  gap: .35rem;
  min-width: 0;
}
.notification-search-form input,
.notification-search-form select {
  width: 100%;
  min-height: 2.75rem;
}
#manual-notification-form fieldset {
  display: grid;
  gap: .55rem;
}
#manual-notification-form .notification-preference-list {
  max-height: 22rem;
  overflow: auto;
}
#manual-notification-form .notification-preference-row {
  cursor: pointer;
}
#manual-notification-form select {
  width: 100%;
}
@media (max-width: 760px) {
  .notification-search-form {
    grid-template-columns: 1fr;
  }
  .notification-search-form .ui-button {
    width: 100%;
  }
  #manual-notification-form .notification-preference-row {
    align-items: center;
  }
}
/* ===== END KMA CSS SOURCE: style-160r6.css ===== */

/* ===== KMA CSS SOURCE 037/101: style-160r7.css ===== */
/* KMA FISHING CLUB 1.60r7 notification recipient selection UX */
.notification-recipient-fieldset {
  display: grid;
  gap: .7rem;
  margin-top: .25rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.notification-recipient-fieldset legend {
  padding: 0 .35rem;
  font-weight: 900;
  color: var(--navy);
}
.notification-recipient-help {
  margin: 0 0 .15rem;
  color: var(--muted);
  font-size: .92rem;
}
.notification-recipient-option {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.notification-recipient-option.is-selected {
  border-color: #38bdf8;
  background: #f8fcff;
  box-shadow: 0 0 0 2px rgba(56, 189, 248, .12);
}
.notification-recipient-choice {
  display: flex;
  align-items: flex-start;
  gap: .72rem;
  margin: 0;
  padding: .9rem 1rem;
  cursor: pointer;
}
.notification-recipient-choice input[type="radio"] {
  flex: 0 0 auto;
  width: 1.25rem;
  height: 1.25rem;
  margin: .15rem 0 0;
}
.notification-recipient-choice-copy {
  display: grid;
  gap: .16rem;
  min-width: 0;
}
.notification-recipient-choice-copy strong {
  color: var(--navy);
  font-size: 1rem;
}
.notification-recipient-choice-copy small {
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.45;
}
.notification-recipient-detail {
  margin: 0 .75rem .8rem 2.95rem;
  padding: .9rem;
  border: 1px solid #bae6fd;
  border-radius: 11px;
  background: #fff;
}
.notification-recipient-detail[hidden] {
  display: none !important;
}
.notification-recipient-detail > label {
  display: grid;
  gap: .4rem;
  margin: 0;
}
.notification-recipient-detail select,
.notification-recipient-detail input[type="search"] {
  width: 100%;
  min-height: 2.85rem;
  margin-top: .2rem;
}
.notification-recipient-current {
  margin: .7rem 0 0;
  padding: .65rem .75rem;
  border-radius: 9px;
  background: #e0f2fe;
  color: #0c4a6e;
  font-weight: 800;
  line-height: 1.45;
}
.notification-recipient-account-list {
  margin-top: .7rem;
}
.notification-recipient-account[hidden] {
  display: none !important;
}
.notification-account-search-label {
  font-weight: 800;
  color: var(--navy);
}
.notification-important-check {
  margin-top: .25rem;
}
.notification-send-summary {
  margin-top: .25rem;
  padding: 1rem;
  border: 1px solid #bfdbfe;
  border-radius: 13px;
  background: #f8fbff;
}
.notification-send-summary h2 {
  margin: 0 0 .7rem;
  color: var(--navy);
  font-size: 1rem;
}
.notification-send-summary dl {
  display: grid;
  gap: .5rem;
  margin: 0;
}
.notification-send-summary dl > div {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: .65rem;
  align-items: start;
}
.notification-send-summary dt {
  color: var(--muted);
  font-weight: 700;
}
.notification-send-summary dd {
  margin: 0;
  color: var(--navy);
  font-weight: 900;
  overflow-wrap: anywhere;
}
.notification-send-guidance {
  margin: .75rem 0 0;
  color: #9a3412;
  font-weight: 800;
}
.notification-send-guidance.is-ready {
  color: #166534;
}
#notification-send-submit:disabled {
  cursor: not-allowed;
  opacity: .55;
}
@media (max-width: 640px) {
  .notification-recipient-fieldset {
    padding: .75rem;
  }
  .notification-recipient-choice {
    padding: .85rem;
  }
  .notification-recipient-detail {
    margin: 0 .55rem .7rem;
  }
  .notification-send-summary dl > div {
    grid-template-columns: 5.5rem minmax(0, 1fr);
  }
  #notification-send-submit {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-160r7.css ===== */

/* ===== KMA CSS SOURCE 038/101: style-161r1.css ===== */
/* 1.61r1 — existing account/RBAC/session stabilization */
.account-session-security-note {
  margin: 0 0 1rem;
  padding: 0.9rem 1rem;
  border: 1px solid #d7e4ec;
  border-radius: 12px;
  background: #f7fbfd;
}
.account-session-security-note strong {
  display: block;
  margin-bottom: 0.35rem;
}
.account-session-security-note p {
  margin: 0.35rem 0 0;
  line-height: 1.6;
}
.account-session-panel .form-actions {
  margin-top: 0.75rem;
}
@media (max-width: 640px) {
  .account-session-security-note {
    padding: 0.8rem;
  }
  .account-session-panel .form-actions button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-161r1.css ===== */

/* ===== KMA CSS SOURCE 039/101: style-162r6.css ===== */
/* KMA FISHING CLUB 1.62r6 — My Page purpose-first navigation
   This layer only reorganizes presentation. Existing forms/routes/data remain unchanged. */

.my-page-purpose-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.my-page-purpose-item {
  min-height: 6.5rem;
  position: relative;
}

.my-page-purpose-item[aria-current="page"] {
  border-color: #075985;
  box-shadow: 0 0 0 2px rgba(7, 89, 133, .12);
  background: #f0f9ff;
}

.my-page-purpose-item[aria-current="page"]::after {
  content: "表示中";
  align-self: flex-start;
  margin-top: .15rem;
  padding: .15rem .45rem;
  border-radius: 999px;
  background: #075985;
  color: #fff;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.35;
}

.my-page-switch-note {
  margin: .85rem 0 0;
  padding: .7rem .8rem;
  border-radius: .7rem;
  background: #f8fafc;
  font-size: .9rem;
  line-height: 1.5;
}

.my-page-quick-links {
  align-items: center;
}

[data-my-page-panel][hidden] {
  display: none !important;
}

[data-my-page-panel] {
  scroll-margin-top: 1rem;
}

@media (max-width: 1100px) {
  .my-page-purpose-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .my-page-purpose-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .my-page-purpose-item {
    min-height: 6rem;
  }
}

@media (max-width: 420px) {
  .my-page-purpose-grid {
    grid-template-columns: 1fr;
  }

  .my-page-purpose-item {
    min-height: 0;
  }

  .my-page-switch-note {
    font-size: .86rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r6.css ===== */

/* ===== KMA CSS SOURCE 040/101: style-162r8.css ===== */

/* 1.62r8 Gear registration UX */
.gear-register-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem;
  margin: 1rem 0;
}

.gear-register-flow span {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  min-width: 0;
  padding: 0.65rem 0.7rem;
  border: 1px solid currentColor;
  border-radius: 0.75rem;
  font-size: 0.9rem;
}

.gear-register-flow b {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.7rem;
  min-height: 1.7rem;
  border: 1px solid currentColor;
  border-radius: 999px;
}

.gear-master-quick-add {
  margin: 1rem 0;
  padding: 0.85rem;
  border: 1px solid currentColor;
  border-radius: 0.85rem;
}

.gear-master-quick-add > summary {
  cursor: pointer;
  font-weight: 700;
}

.gear-master-quick-add > p {
  margin: 0.75rem 0;
}

.gear-master-quick-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.8rem;
  margin-top: 0.8rem;
}

.gear-master-mini-form {
  display: grid;
  gap: 0.65rem;
  padding: 0.8rem;
  border: 1px solid currentColor;
  border-radius: 0.75rem;
}

.gear-master-mini-form label,
.gear-choice-field label {
  display: grid;
  gap: 0.35rem;
}

.gear-choice-grid {
  align-items: start;
}

.gear-choice-field {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
}

.gear-choice-picker {
  padding: 0.65rem;
  border: 1px solid currentColor;
  border-radius: 0.7rem;
}

.gear-choice-picker select {
  width: 100%;
}

.fishing-gear-catalog-cta {
  gap: 0.55rem;
  flex-wrap: wrap;
}

@media (max-width: 760px) {
  .gear-register-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-master-quick-grid {
    grid-template-columns: 1fr;
  }

  .gear-register-flow span {
    font-size: 0.84rem;
  }
}

@media (max-width: 430px) {
  .gear-register-flow {
    grid-template-columns: 1fr;
  }

  .gear-register-flow span {
    min-height: 2.75rem;
  }

  .gear-master-quick-add {
    padding: 0.7rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r8.css ===== */

/* ===== KMA CSS SOURCE 041/101: style-162r9.css ===== */

/* 1.62r9 Admin gear-master maintenance */
.gear-master-admin-page {
  display: grid;
  gap: 1rem;
}

.gear-master-admin-hero,
.gear-master-admin-heading,
.gear-master-series-heading,
.gear-master-series-card-heading {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
}

.gear-master-admin-actions,
.gear-master-admin-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
}

.gear-master-admin-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
}

.gear-master-admin-summary > div {
  display: grid;
  gap: 0.25rem;
  padding: 0.85rem;
  border: 1px solid currentColor;
  border-radius: 0.8rem;
}

.gear-master-admin-summary strong {
  font-size: 1.35rem;
}

.gear-master-admin-policy ul {
  margin-bottom: 0;
}

.gear-master-admin-stack {
  display: grid;
  gap: 1rem;
}

.gear-master-admin-manufacturer.is-inactive,
.gear-master-series-card.is-inactive {
  opacity: 0.75;
}

.gear-master-state {
  display: inline-flex;
  width: fit-content;
  padding: 0.15rem 0.5rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
}

.gear-master-state.is-inactive {
  border-style: dashed;
}

.gear-master-source {
  font-size: 0.78rem;
}

.gear-master-admin-edit {
  margin: 0.8rem 0;
}

.gear-master-admin-edit > summary,
.gear-master-admin-row-actions details > summary {
  cursor: pointer;
  font-weight: 700;
}

.gear-master-admin-edit-form,
.gear-master-merge-form {
  margin-top: 0.7rem;
}

.gear-master-series-section {
  margin-top: 1rem;
  padding-top: 0.9rem;
  border-top: 1px solid currentColor;
}

.gear-master-series-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 0.7rem;
}

.gear-master-series-card {
  display: grid;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid currentColor;
  border-radius: 0.8rem;
}

.gear-master-series-card-heading strong,
.gear-master-admin-heading h2 {
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .gear-master-admin-hero,
  .gear-master-admin-heading,
  .gear-master-series-heading,
  .gear-master-series-card-heading {
    display: grid;
  }

  .gear-master-admin-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-master-series-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .gear-master-admin-summary {
    grid-template-columns: 1fr;
  }

  .gear-master-admin-actions,
  .gear-master-admin-row-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gear-master-admin-actions a,
  .gear-master-admin-row-actions button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r9.css ===== */

/* ===== KMA CSS SOURCE 042/101: style-162r10.css ===== */
/* KMA FISHING CLUB 1.62r10 — Web Gear Registration MVP */

.gear-web-flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .5rem;
}

.gear-web-flow span {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-width: 0;
  padding: .65rem .7rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .75rem;
  background: rgba(248, 250, 252, .92);
  color: #64748b;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.35;
}

.gear-web-flow b {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  width: 1.55rem;
  height: 1.55rem;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: .78rem;
}

.gear-web-flow .is-done {
  border-color: rgba(22, 163, 74, .26);
  background: rgba(22, 163, 74, .06);
  color: #166534;
}

.gear-web-flow .is-done b {
  background: #dcfce7;
  color: #166534;
}

.gear-web-flow .is-current {
  border-color: rgba(37, 99, 235, .32);
  background: rgba(37, 99, 235, .07);
  color: #1d4ed8;
}

.gear-web-flow .is-current b {
  background: #dbeafe;
  color: #1d4ed8;
}

.gear-web-review-page {
  max-width: 980px;
  margin-inline: auto;
}

.gear-web-review-heading-row {
  display: flex;
  gap: .9rem;
  align-items: flex-start;
  justify-content: space-between;
}

.gear-web-review-heading-row h2,
.gear-web-review-product h2,
.gear-web-review-duplicate h2 {
  margin-top: 0;
}

.gear-web-review-heading-row p {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  align-items: center;
  margin-bottom: .35rem;
}

.gear-web-domain-inline {
  color: #64748b;
  font-size: .82rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.gear-web-review-source > small,
.gear-web-review-edit-note {
  color: #64748b;
  line-height: 1.55;
}

.gear-web-review-dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem .9rem;
  margin: .8rem 0;
}

.gear-web-review-dl > div {
  min-width: 0;
  padding: .7rem .75rem;
  border-radius: .7rem;
  background: rgba(248, 250, 252, .9);
}

.gear-web-review-dl dt {
  margin-bottom: .25rem;
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.gear-web-review-dl dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.gear-web-review-reuse,
.gear-web-review-new {
  padding: .85rem;
  border-radius: .75rem;
}

.gear-web-review-reuse {
  border: 1px solid rgba(22, 163, 74, .28);
  background: rgba(22, 163, 74, .06);
}

.gear-web-review-new {
  border: 1px solid rgba(37, 99, 235, .24);
  background: rgba(37, 99, 235, .05);
}

.gear-web-review-reuse p,
.gear-web-review-new p {
  margin-bottom: .55rem;
  line-height: 1.6;
}

.gear-web-review-candidates {
  display: grid;
  gap: .65rem;
}

.gear-web-review-candidates article {
  display: grid;
  gap: .45rem;
  padding: .75rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .7rem;
  background: #fff;
}

.gear-web-review-candidates article > span {
  color: #475569;
  font-size: .86rem;
  overflow-wrap: anywhere;
}

.gear-web-review-candidates .secondary {
  width: fit-content;
}

.gear-web-final-form {
  display: grid;
  gap: .85rem;
}

.gear-web-final-confirm {
  display: grid;
  gap: .25rem;
  padding: .75rem .8rem;
  border-radius: .75rem;
  background: rgba(241, 245, 249, .86);
}

.gear-web-final-confirm span {
  color: #64748b;
  font-size: .82rem;
}

.gear-web-final-actions {
  align-items: stretch;
}

.gear-web-final-actions .primary {
  min-height: 2.8rem;
}

@media (max-width: 720px) {
  .gear-web-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-web-review-heading-row {
    display: grid;
  }

  .gear-web-review-heading-row > .secondary,
  .gear-web-review-candidates .secondary,
  .gear-web-final-actions .primary,
  .gear-web-final-actions .secondary {
    width: 100%;
  }

  .gear-web-review-dl {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 420px) {
  .gear-web-flow {
    grid-template-columns: 1fr;
  }
}
/* ===== END KMA CSS SOURCE: style-162r10.css ===== */

/* ===== KMA CSS SOURCE 043/101: style-162r11.css ===== */
/* KMA FISHING CLUB 1.62r11 - Web gear search / registration UX completion */
.gear-web-manual-review {
  scroll-margin-top: 1rem;
}

.gear-web-manual-review .gear-web-manual-form,
.gear-web-review-edit-form {
  display: grid;
  gap: 0.9rem;
}

.gear-web-review-edit {
  margin-top: 1rem;
  border-top: 1px solid rgba(0, 0, 0, 0.12);
  padding-top: 0.8rem;
}

.gear-web-review-edit > summary {
  cursor: pointer;
  font-weight: 700;
}

.gear-web-review-edit[open] > summary {
  margin-bottom: 0.9rem;
}

.gear-web-empty .form-actions {
  margin-top: 0.8rem;
}

@media (max-width: 720px) {
  .gear-web-manual-review .form-actions > *,
  .gear-web-empty .form-actions > *,
  .gear-web-review-edit-form .form-actions > * {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r11.css ===== */

/* ===== KMA CSS SOURCE 044/101: style-162r12.css ===== */
/* KMA FISHING CLUB 1.62r12 - gear ownership/catalog flow separation */

.gear-flow-page {
  display: grid;
  gap: 1rem;
}

.gear-flow-hero h1,
.gear-path-card h2,
.gear-flow-private-note h2 {
  margin-top: 0.35rem;
}

.gear-flow-hero p {
  max-width: 52rem;
}

.gear-flow-status {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.8rem;
}

.gear-flow-status > span,
.gear-scope-label,
.gear-path-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  padding: 0.28rem 0.65rem;
  font-size: 0.82rem;
  font-weight: 700;
  background: rgba(20, 76, 112, 0.08);
}

.gear-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}

.gear-path-grid.is-two-column {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gear-path-card {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  min-width: 0;
}

.gear-path-card.is-recommended {
  border-width: 2px;
}

.gear-path-card.is-private {
  border-style: dashed;
}

.gear-path-number {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  font-weight: 800;
  background: rgba(20, 76, 112, 0.1);
}

.gear-path-card h2,
.gear-path-card p,
.gear-path-card ul {
  margin-top: 0;
  margin-bottom: 0;
}

.gear-path-card ul {
  padding-left: 1.2rem;
}

.gear-path-card li + li {
  margin-top: 0.35rem;
}

.gear-path-action {
  margin-top: auto;
}

.gear-scope-card {
  scroll-margin-top: 1rem;
}

.gear-scope-explainer {
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  background: rgba(20, 76, 112, 0.05);
  margin-bottom: 0.9rem;
}

.gear-scope-explainer p {
  margin: 0.45rem 0 0;
}

.gear-primary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
}

.gear-primary-actions small {
  flex-basis: 100%;
}

.gear-add-footer-action {
  margin-top: 1rem;
}

.gear-catalog-next-action {
  margin-top: 1rem;
}

.gear-private-form-card .admin-form {
  display: grid;
  gap: 0.9rem;
}

@media (max-width: 900px) {
  .gear-path-grid,
  .gear-path-grid.is-two-column {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .gear-flow-page .form-actions,
  .gear-primary-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gear-flow-page .form-actions > *,
  .gear-primary-actions > *,
  .gear-path-action {
    width: 100%;
  }

  .gear-path-card {
    padding: 1rem;
  }

  .gear-flow-status {
    align-items: stretch;
  }

  .gear-flow-status > span {
    width: 100%;
    justify-content: center;
  }
}
/* ===== END KMA CSS SOURCE: style-162r12.css ===== */

/* ===== KMA CSS SOURCE 045/101: style-162r14.css ===== */
/* KMA FISHING CLUB 1.62r14 - Catalog -> My Gear ownership flow */

.gear-add-my-page {
  display: grid;
  gap: 1rem;
}

.gear-add-my-hero p {
  max-width: 54rem;
}

.gear-add-my-flow {
  margin: 0;
}

.gear-add-my-product,
.gear-add-my-owner {
  min-width: 0;
}

.gear-add-my-product-dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 1rem;
  margin: 1rem 0 0;
}

.gear-add-my-product-dl > div {
  min-width: 0;
  padding: 0.7rem 0.8rem;
  border-radius: 0.65rem;
  background: rgba(20, 76, 112, 0.05);
}

.gear-add-my-product-dl dt {
  font-size: 0.8rem;
  font-weight: 700;
  opacity: 0.72;
}

.gear-add-my-product-dl dd {
  margin: 0.2rem 0 0;
  overflow-wrap: anywhere;
}

.gear-add-my-form {
  display: grid;
  gap: 0.9rem;
}

.gear-add-my-final-note {
  display: grid;
  gap: 0.25rem;
  padding: 0.8rem 0.9rem;
  border-radius: 0.7rem;
  background: rgba(20, 76, 112, 0.06);
}

.gear-catalog-add-personal-cta {
  display: grid;
  gap: 0.45rem;
  margin-top: 0.9rem;
}

.gear-catalog-add-personal-cta > .primary {
  width: fit-content;
}

.gear-catalog-owned-badge.is-unowned {
  background: rgba(120, 120, 120, 0.10);
  color: inherit;
}

@media (max-width: 720px) {
  .gear-add-my-product-dl {
    grid-template-columns: 1fr;
  }

  .gear-catalog-add-personal-cta > .primary,
  .gear-add-my-page .form-actions > * {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r14.css ===== */

/* ===== KMA CSS SOURCE 046/101: style-162r15.css ===== */
/* KMA FISHING CLUB 1.62r15 - manufacturer-official gear source gate */

.gear-official-only-notice {
  border: 1px solid rgba(20, 76, 112, 0.18);
}

.gear-official-only-notice ul {
  margin-bottom: 0;
}

.gear-official-domain-box {
  margin-top: 1rem;
  padding: 0.85rem 0.95rem;
  border-radius: 0.75rem;
  background: rgba(20, 76, 112, 0.06);
}

.gear-official-domain-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin: 0.45rem 0;
}

.gear-official-domain-list a {
  display: inline-flex;
  padding: 0.38rem 0.6rem;
  border-radius: 999px;
  background: rgba(20, 76, 112, 0.10);
  overflow-wrap: anywhere;
}

.gear-official-fallback .form-actions {
  align-items: stretch;
}

@media (max-width: 720px) {
  .gear-official-domain-list {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gear-official-domain-list a,
  .gear-official-fallback .form-actions > * {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r15.css ===== */

/* ===== KMA CSS SOURCE 047/101: style-162r16.css ===== */
/* KMA FISHING CLUB 1.62r16 - gear ledger and category display */

.gear-ledger-page {
  display: grid;
  gap: 1rem;
}

.gear-ledger-hero {
  margin-bottom: 0;
}

.gear-ledger-counts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
}

.gear-ledger-count-card {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(15, 23, 42, 0.10);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.92);
}

.gear-ledger-count-card strong {
  font-size: 1.25rem;
  line-height: 1.1;
}

.gear-ledger-count-card span {
  font-size: 0.82rem;
  color: #475569;
}

.gear-ledger-count-card.is-total {
  border-color: rgba(3, 105, 161, 0.22);
  background: rgba(14, 165, 233, 0.05);
}

.gear-ledger-controls {
  display: grid;
  gap: 0.85rem;
}

.gear-ledger-control-form {
  display: grid;
  gap: 0.9rem;
}

.gear-ledger-filter-fieldset,
.gear-ledger-search-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0.85rem;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
}

.gear-ledger-filter-fieldset legend,
.gear-ledger-search-fieldset legend {
  padding: 0 0.35rem;
  font-weight: 800;
}

.gear-ledger-filter-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 0.7rem;
}

.gear-ledger-filter-grid label,
.gear-ledger-search-label {
  min-width: 0;
}

.gear-ledger-filter-grid select,
.gear-ledger-search-label input {
  width: 100%;
}

.gear-ledger-search-label {
  display: grid;
  gap: 0.4rem;
}

.gear-ledger-search-label > span {
  font-size: 0.88rem;
  font-weight: 700;
}

.gear-ledger-control-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.gear-ledger-control-actions > * {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.gear-ledger-result-summary {
  margin: 0;
}

.gear-ledger-category-stack {
  display: grid;
  gap: 1rem;
}

.gear-ledger-category {
  min-width: 0;
}

.gear-ledger-category-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.85rem;
}

.gear-ledger-category-heading h2,
.gear-ledger-category-heading p {
  margin: 0;
}

.gear-ledger-category-heading p {
  margin-top: 0.25rem;
  color: #475569;
  font-size: 0.9rem;
}

.gear-ledger-category-count {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.06);
  font-size: 0.84rem;
  font-weight: 700;
}

.gear-ledger-desktop {
  width: 100%;
  overflow-x: auto;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  background: #fff;
  -webkit-overflow-scrolling: touch;
}

.gear-ledger-table {
  width: 100%;
  min-width: 980px;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.88rem;
}

.gear-ledger-table-rod {
  min-width: 1180px;
}

.gear-ledger-table-reel {
  min-width: 1120px;
}

.gear-ledger-table th,
.gear-ledger-table td {
  padding: 0.72rem 0.7rem;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.gear-ledger-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  white-space: nowrap;
  background: #f8fafc;
  color: #334155;
  font-size: 0.78rem;
  font-weight: 800;
}

.gear-ledger-table tbody tr:last-child th,
.gear-ledger-table tbody tr:last-child td {
  border-bottom: 0;
}

.gear-ledger-table tbody tr:hover {
  background: rgba(14, 165, 233, 0.035);
}

.gear-ledger-product-cell {
  min-width: 180px;
  max-width: 250px;
}

.gear-ledger-product-cell strong {
  display: block;
  overflow-wrap: anywhere;
}

.gear-ledger-product-cell small,
.gear-ledger-product-cell a {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.76rem;
  font-weight: 500;
}

.gear-ledger-fish-cell {
  min-width: 180px;
}

.gear-ledger-fish-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem;
}

.gear-ledger-fish-tags > span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0.12rem 0.42rem;
  border-radius: 999px;
  background: rgba(3, 105, 161, 0.08);
  color: #075985;
  font-size: 0.74rem;
  white-space: nowrap;
}

.gear-ledger-ownership-cell {
  min-width: 120px;
  white-space: nowrap;
}

.gear-ledger-ownership-cell strong {
  color: #166534;
}

.gear-ledger-action-cell {
  min-width: 150px;
}

.gear-ledger-action-cell .primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0.45rem 0.7rem;
  white-space: nowrap;
  font-size: 0.82rem;
}

.gear-ledger-readonly {
  color: #64748b;
  font-size: 0.8rem;
}

.gear-ledger-mobile {
  display: none;
}

.gear-ledger-mobile-list,
.gear-ledger-mobile {
  gap: 0.55rem;
}

.gear-ledger-mobile-item {
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.gear-ledger-mobile-item > summary {
  min-height: 58px;
  padding: 0.75rem 0.8rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  list-style-position: inside;
}

.gear-ledger-mobile-item > summary::marker {
  color: #64748b;
}

.gear-ledger-mobile-main {
  min-width: 0;
  display: grid;
  gap: 0.18rem;
}

.gear-ledger-mobile-main strong {
  overflow-wrap: anywhere;
}

.gear-ledger-mobile-main small {
  color: #64748b;
  overflow-wrap: anywhere;
}

.gear-ledger-mobile-status {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  background: rgba(22, 163, 74, 0.10);
  color: #166534;
  font-size: 0.72rem;
  font-weight: 800;
}

.gear-ledger-mobile-status.is-unowned {
  background: rgba(100, 116, 139, 0.10);
  color: #475569;
}

.gear-ledger-mobile-body {
  display: grid;
  gap: 0.75rem;
  padding: 0 0.85rem 0.85rem;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.gear-ledger-mobile-body dl {
  display: grid;
  gap: 0;
  margin: 0.7rem 0 0;
}

.gear-ledger-mobile-body dl > div {
  display: grid;
  grid-template-columns: 7.2rem minmax(0, 1fr);
  gap: 0.65rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.06);
}

.gear-ledger-mobile-body dt {
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 700;
}

.gear-ledger-mobile-body dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.gear-ledger-mobile-owner-note {
  margin: 0;
  color: #475569;
  font-size: 0.8rem;
}

.gear-ledger-mobile-add {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
}

@media (max-width: 1100px) {
  .gear-ledger-counts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gear-ledger-filter-grid {
    grid-template-columns: repeat(3, minmax(150px, 1fr));
  }
}

@media (max-width: 760px) {
  .gear-ledger-counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-ledger-filter-grid {
    grid-template-columns: 1fr;
  }

  .gear-ledger-control-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .gear-ledger-control-actions > * {
    width: 100%;
  }

  .gear-ledger-category-heading {
    align-items: baseline;
  }

  .gear-ledger-category-heading p {
    display: none;
  }

  .gear-ledger-desktop {
    display: none;
  }

  .gear-ledger-mobile {
    display: grid;
  }

  .gear-ledger-mobile-item > summary {
    align-items: flex-start;
  }
}

@media (max-width: 430px) {
  .gear-ledger-counts {
    grid-template-columns: 1fr 1fr;
  }

  .gear-ledger-count-card {
    padding: 0.65rem 0.7rem;
  }

  .gear-ledger-mobile-item > summary {
    flex-direction: column;
  }

  .gear-ledger-mobile-status {
    margin-left: 1.25rem;
  }

  .gear-ledger-mobile-body dl > div {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
}


/* My Gear: compact ledger first, existing edit/line controls inside each detail row. */
.my-gear-ledger-list {
  display: grid;
  gap: 0;
  margin-top: 0.9rem;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.my-gear-ledger-head,
.my-gear-ledger-summary {
  display: grid;
  grid-template-columns:
    minmax(170px, 1.45fr)
    minmax(72px, 0.55fr)
    minmax(155px, 1.1fr)
    minmax(110px, 0.8fr)
    minmax(130px, 0.95fr)
    minmax(150px, 1.1fr)
    minmax(110px, 0.75fr);
  gap: 0.65rem;
  align-items: start;
}

.my-gear-ledger-head {
  padding: 0.65rem 0.75rem;
  background: #f8fafc;
  color: #334155;
  font-size: 0.76rem;
  font-weight: 800;
}

.my-gear-ledger-item {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  background: #fff;
}

.my-gear-ledger-item:first-of-type {
  border-top: 0;
}

.my-gear-ledger-item.is-favorite {
  box-shadow: inset 3px 0 0 rgba(3, 105, 161, 0.45);
}

.my-gear-ledger-summary {
  min-width: 980px;
  padding: 0.72rem 0.75rem;
  cursor: pointer;
  list-style-position: inside;
}

.my-gear-ledger-summary:hover {
  background: rgba(14, 165, 233, 0.035);
}

.my-gear-ledger-summary > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.my-gear-ledger-summary strong,
.my-gear-ledger-summary small,
.my-gear-ledger-summary b,
.my-gear-ledger-summary em {
  display: block;
}

.my-gear-ledger-summary small {
  margin-top: 0.14rem;
  color: #64748b;
  font-size: 0.76rem;
}

.my-gear-ledger-product strong {
  font-size: 0.9rem;
}

.my-gear-ledger-category {
  font-weight: 700;
}

.my-gear-ledger-state b {
  color: #854d0e;
  font-size: 0.75rem;
}

.my-gear-ledger-state em {
  margin-top: 0.18rem;
  color: #0369a1;
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 700;
}

.my-gear-ledger-detail {
  padding: 0 0.75rem 0.85rem;
  background: rgba(248, 250, 252, 0.65);
}

.my-gear-ledger-detail .fishing-gear-row {
  margin-top: 0;
  border-radius: 10px;
}

@media (max-width: 1100px) {
  .my-gear-ledger-list {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 760px) {
  .my-gear-ledger-list {
    border-radius: 10px;
    overflow: visible;
    border: 0;
    background: transparent;
    gap: 0.5rem;
  }

  .my-gear-ledger-head {
    display: none;
  }

  .my-gear-ledger-item {
    border: 1px solid rgba(15, 23, 42, 0.12);
    border-radius: 10px;
    overflow: hidden;
  }

  .my-gear-ledger-summary {
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.25rem 0.65rem;
    padding: 0.72rem 0.78rem;
  }

  .my-gear-ledger-product {
    grid-column: 1;
    grid-row: 1;
  }

  .my-gear-ledger-category {
    grid-column: 2;
    grid-row: 1;
    text-align: right;
  }

  .my-gear-ledger-maker,
  .my-gear-ledger-model,
  .my-gear-ledger-spec,
  .my-gear-ledger-target {
    grid-column: 1 / -1;
    font-size: 0.82rem;
  }

  .my-gear-ledger-maker::before {
    content: "メーカー: ";
    color: #64748b;
    font-size: 0.75rem;
  }

  .my-gear-ledger-model::before {
    content: "型番: ";
    color: #64748b;
    font-size: 0.75rem;
  }

  .my-gear-ledger-spec::before {
    content: "仕様: ";
    color: #64748b;
    font-size: 0.75rem;
  }

  .my-gear-ledger-target::before {
    content: "ターゲット: ";
    color: #64748b;
    font-size: 0.75rem;
  }

  .my-gear-ledger-state {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    text-align: left;
  }

  .my-gear-ledger-state b,
  .my-gear-ledger-state small,
  .my-gear-ledger-state em {
    display: inline-flex;
    margin: 0;
  }

  .my-gear-ledger-detail {
    padding: 0 0.55rem 0.65rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r16.css ===== */

/* ===== KMA CSS SOURCE 048/101: style-162r17.css ===== */
/* KMA FISHING CLUB 1.62r17 - Admin gear catalog cleanup */
.catalog-quality-summary {
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
}

.catalog-admin-edit,
.catalog-admin-merge,
.catalog-admin-delete,
.catalog-quality-archive {
  margin-top: 0.65rem;
  border: 1px solid var(--line, #d9dee6);
  border-radius: 12px;
  padding: 0.7rem 0.8rem;
  background: rgba(255, 255, 255, 0.72);
}

.catalog-admin-edit > summary,
.catalog-admin-merge > summary,
.catalog-admin-delete > summary,
.catalog-quality-archive > summary {
  cursor: pointer;
  font-weight: 700;
}

.catalog-admin-edit-form {
  display: grid;
  gap: 0.7rem;
  margin-top: 0.8rem;
}

.catalog-admin-edit-form label,
.catalog-admin-merge label,
.catalog-admin-delete label {
  display: grid;
  gap: 0.3rem;
  font-weight: 600;
}

.catalog-admin-edit-form input,
.catalog-admin-edit-form select,
.catalog-admin-edit-form textarea,
.catalog-admin-merge select,
.catalog-admin-delete input {
  width: 100%;
}

.catalog-admin-inline {
  display: grid;
  gap: 0.6rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.catalog-admin-merge {
  border-color: #d8c88b;
}

.catalog-admin-delete {
  border-color: #ddb0b0;
}

.catalog-admin-delete > summary {
  color: #8d2020;
}

@media (max-width: 720px) {
  .catalog-admin-inline {
    grid-template-columns: 1fr;
  }

  .catalog-quality-actions .primary,
  .catalog-quality-actions .secondary,
  .catalog-quality-actions .danger,
  .catalog-quality-actions button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r17.css ===== */

/* ===== KMA CSS SOURCE 049/101: style-162r18.css ===== */
/* KMA FISHING CLUB 1.62r18 - gear cleanup / distinct-product review */

.gear-distinct-choice {
  margin: 1rem 0;
  padding: 0.9rem;
  border: 1px solid var(--border-color, #d8dee6);
  border-radius: 12px;
}

.gear-distinct-choice legend {
  font-weight: 700;
}

.gear-distinct-choice label {
  display: block;
  margin-top: 0.65rem;
  line-height: 1.45;
}

.gear-distinct-choice input[type="checkbox"] {
  margin-right: 0.45rem;
}

.catalog-distinct-pair-form {
  margin-top: 0.9rem;
  padding-top: 0.8rem;
  border-top: 1px dashed var(--border-color, #d8dee6);
}

@media (max-width: 760px) {
  .gear-distinct-choice {
    padding: 0.75rem;
  }

  .catalog-distinct-pair-form button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r18.css ===== */

/* ===== KMA CSS SOURCE 050/101: style-162r19.css ===== */
/* KMA FISHING CLUB 1.62r19 Push quiet-hours / emergency notification UI */
.notification-settings-heading-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
  flex-wrap: wrap;
}
.notification-settings-heading-row h2 {
  margin-top: 0;
}
.notification-quiet-current {
  display: inline-flex;
  align-items: center;
  min-height: 2.25rem;
  padding: .35rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--navy);
  font-weight: 900;
  white-space: nowrap;
}
.notification-quiet-mode-list {
  display: grid;
  gap: .6rem;
  margin: .85rem 0;
}
.notification-quiet-mode {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin: 0;
  padding: .8rem .9rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.notification-quiet-mode input[type="radio"] {
  flex: 0 0 auto;
  width: 1.2rem;
  height: 1.2rem;
  margin-top: .12rem;
}
.notification-quiet-mode span {
  display: grid;
  gap: .12rem;
  min-width: 0;
}
.notification-quiet-mode strong {
  color: var(--navy);
}
.notification-quiet-mode small {
  color: var(--muted);
  line-height: 1.45;
}
.notification-quiet-personal-fields {
  display: grid;
  gap: .75rem;
  margin-top: .85rem;
  padding: .9rem;
  border: 1px solid #bae6fd;
  border-radius: 12px;
  background: #f8fcff;
}
.notification-quiet-enabled {
  justify-content: flex-start;
}
.notification-quiet-times {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: .75rem;
  align-items: end;
}
.notification-quiet-times label {
  display: grid;
  gap: .35rem;
  margin: 0;
  min-width: 0;
  font-weight: 800;
  color: var(--navy);
}
.notification-quiet-times input[type="time"] {
  width: 100%;
  min-height: 2.8rem;
}
.notification-quiet-arrow {
  padding-bottom: .7rem;
  color: var(--muted);
  font-weight: 900;
}
.notification-emergency-explain {
  border-color: #fecaca;
  background: #fffafa;
}
.notification-priority-fieldset {
  display: grid;
  gap: .65rem;
  margin-top: .25rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: 14px;
}
.notification-priority-fieldset legend {
  padding: 0 .35rem;
  font-weight: 900;
  color: var(--navy);
}
.notification-priority-choice {
  display: flex;
  align-items: flex-start;
  gap: .7rem;
  margin: 0;
  padding: .8rem .9rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}
.notification-priority-choice input[type="radio"] {
  flex: 0 0 auto;
  width: 1.2rem;
  height: 1.2rem;
  margin-top: .12rem;
}
.notification-priority-choice span {
  display: grid;
  gap: .12rem;
  min-width: 0;
}
.notification-priority-choice strong {
  color: var(--navy);
}
.notification-priority-choice small {
  color: var(--muted);
  line-height: 1.45;
}
.notification-priority-choice.is-emergency {
  border-color: #fca5a5;
  background: #fff7f7;
}
.notification-emergency-warning {
  display: grid;
  gap: .15rem;
  margin-top: .2rem;
  padding: .8rem .9rem;
  border: 1px solid #fca5a5;
  border-radius: 12px;
  background: #fff1f2;
  color: #991b1b;
}
.notification-emergency-warning[hidden] {
  display: none !important;
}
.notification-emergency-badge {
  display: inline-flex;
  align-items: center;
  padding: .14rem .48rem;
  border-radius: 999px;
  background: #b91c1c;
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .03em;
}
.my-page-notification-setting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .9rem;
  margin: .7rem 0 1rem;
  padding: .85rem .95rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafc;
}
.my-page-notification-setting > div {
  display: grid;
  gap: .12rem;
  min-width: 0;
}
.my-page-notification-setting strong {
  color: var(--navy);
}
.my-page-notification-setting span,
.my-page-notification-setting small {
  overflow-wrap: anywhere;
}
.my-page-notification-setting small {
  color: var(--muted);
}

@media (max-width: 640px) {
  .notification-quiet-current {
    white-space: normal;
  }
  .notification-quiet-times {
    grid-template-columns: 1fr;
  }
  .notification-quiet-arrow {
    display: none;
  }
  .notification-priority-fieldset {
    padding: .75rem;
  }
  .my-page-notification-setting {
    align-items: stretch;
    flex-direction: column;
  }
  .my-page-notification-setting .button-link {
    width: 100%;
    text-align: center;
  }
}
/* ===== END KMA CSS SOURCE: style-162r19.css ===== */

/* ===== KMA CSS SOURCE 051/101: style-162r20.css ===== */
/* KMA FISHING CLUB 1.62r20
   My Page/Home compact display + notification settings frame alignment. */

/* r19 notification settings used max-width:820px on forms while the device card
   used the full container width. Keep every settings card on one shared frame. */
.notification-settings-form {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}
.notification-settings-form > .notification-settings-card,
#push-device-check.notification-settings-card {
  width: 100%;
  box-sizing: border-box;
}
#push-device-check {
  margin-bottom: 1rem;
}
.notification-settings-form + .notification-settings-form {
  margin-top: 1rem;
}

/* Small reusable disclosure for explanatory copy. */
.compact-explanation {
  flex-basis: 100%;
  margin: 0;
  min-width: 0;
}
.compact-explanation > summary {
  width: fit-content;
  max-width: 100%;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .65rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--navy);
  cursor: pointer;
  list-style: none;
  font-weight: 800;
}
.compact-explanation > summary::-webkit-details-marker {
  display: none;
}
.compact-explanation > summary::after {
  content: "＋";
  color: var(--blue);
  font-weight: 900;
}
.compact-explanation[open] > summary::after {
  content: "−";
}
.compact-explanation-trigger {
  font-size: .8rem;
  color: var(--blue);
}
.compact-explanation-body {
  margin-top: .65rem;
  padding: .75rem .85rem;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: #f8fbff;
}
.compact-explanation-body p {
  margin: 0;
}
.compact-explanation-body small {
  display: block;
  margin-top: .45rem;
  color: var(--muted);
  line-height: 1.55;
}

/* Personal trip notes stay compact until the member opens the editor. */
.personal-trip-note-compact {
  padding: 0;
  overflow: hidden;
}
.personal-trip-note-compact > summary {
  min-height: 58px;
  padding: .8rem .9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  cursor: pointer;
  list-style: none;
}
.personal-trip-note-compact > summary::-webkit-details-marker {
  display: none;
}
.personal-trip-note-summary-title {
  min-width: 0;
  display: grid;
  gap: .08rem;
}
.personal-trip-note-summary-title strong {
  color: var(--navy);
  font-size: 1rem;
  overflow-wrap: anywhere;
}
.personal-trip-note-summary-meta {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .45rem;
  flex-wrap: wrap;
}
.personal-trip-note-state {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}
.personal-trip-note-disclosure {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .3rem .6rem;
  border: 1px solid #bae6fd;
  border-radius: 9px;
  background: #f0f9ff;
  color: var(--blue);
  font-size: .8rem;
  font-weight: 900;
}
.personal-trip-note-compact .personal-trip-note-disclosure .when-open {
  display: none;
}
.personal-trip-note-compact[open] .personal-trip-note-disclosure .when-open {
  display: inline;
}
.personal-trip-note-compact[open] .personal-trip-note-disclosure .when-closed {
  display: none;
}
.personal-trip-note-editor {
  padding: 0 .9rem .9rem;
  border-top: 1px solid var(--line);
}
.personal-trip-note-editor .personal-trip-note-help {
  margin-top: .8rem;
}

/* Home notices: every body starts closed; the actual newest item is easy to find. */
.home-notice-item.is-newest {
  border-left-color: #0284c7;
  background: #f0f9ff;
}
.home-notice-item.important.is-newest {
  border-left-color: #0284c7;
  background: #fffaf0;
}
.home-notice-new-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  padding: .12rem .42rem;
  border-radius: 999px;
  background: #0369a1;
  color: #fff;
  font-size: .66rem;
  font-weight: 900;
  letter-spacing: .04em;
}

/* Admin rules are available on demand instead of consuming the page on every visit. */
.compact-admin-policy {
  padding: 0;
  overflow: hidden;
}
.compact-admin-policy > summary {
  min-height: 48px;
  padding: .8rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  list-style: none;
  cursor: pointer;
  color: var(--navy);
  font-weight: 900;
}
.compact-admin-policy > summary::-webkit-details-marker {
  display: none;
}
.compact-admin-policy > summary::after {
  content: "＋";
  color: var(--blue);
  font-weight: 900;
}
.compact-admin-policy[open] > summary::after {
  content: "−";
}
.compact-admin-policy-body {
  padding: 0 1rem 1rem;
  border-top: 1px solid var(--line);
}
.compact-admin-policy-body h2 {
  margin: .85rem 0 .45rem;
}

/* r20 display terminology: the internal `rod` value is unchanged. */
.gear-inline-explanation .gear-scope-label {
  margin: 0;
}

@media (max-width: 640px) {
  .notification-settings-form,
  .notification-settings-form > .notification-settings-card,
  #push-device-check.notification-settings-card {
    width: 100%;
    max-width: 100%;
  }

  .personal-trip-note-compact > summary {
    align-items: flex-start;
    flex-direction: column;
    gap: .55rem;
  }
  .personal-trip-note-summary-meta {
    width: 100%;
    justify-content: flex-start;
  }
  .personal-trip-note-disclosure {
    margin-left: auto;
  }

  .home-notice-summary-main {
    flex-wrap: wrap;
  }

  .compact-explanation > summary {
    min-height: 40px;
  }
}
/* ===== END KMA CSS SOURCE: style-162r20.css ===== */

/* ===== KMA CSS SOURCE 052/101: style-162r21.css ===== */
/* KMA FISHING CLUB 1.62r21 - My Gear ledger completion */

/* r21 groups owned gear by type and keeps the first view compact. */
.my-gear-ledger-list {
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  gap: 1rem;
}

.my-gear-type-section {
  min-width: 0;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
}

.my-gear-type-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .72rem .8rem;
  border-bottom: 1px solid rgba(15, 23, 42, 0.09);
  background: #f8fafc;
}

.my-gear-type-heading h3 {
  margin: 0;
  color: var(--navy);
  font-size: 1rem;
}

.my-gear-type-heading span {
  flex: 0 0 auto;
  color: #64748b;
  font-size: .78rem;
  font-weight: 800;
}

/* Desktop column sets are tailored to the information that matters by type. */
.my-gear-ledger-head,
.my-gear-ledger-summary {
  min-width: 0;
}

.my-gear-ledger-head.is-rod,
.my-gear-ledger-summary.is-rod {
  grid-template-columns:
    minmax(190px, 1.6fr)
    minmax(150px, 1.05fr)
    minmax(110px, .8fr)
    minmax(95px, .65fr)
    minmax(95px, .65fr);
}

.my-gear-ledger-head.is-reel,
.my-gear-ledger-summary.is-reel {
  grid-template-columns:
    minmax(180px, 1.35fr)
    minmax(145px, 1fr)
    minmax(105px, .75fr)
    minmax(105px, .7fr)
    minmax(230px, 1.45fr)
    minmax(95px, .62fr);
}

.my-gear-ledger-head.is-rig,
.my-gear-ledger-summary.is-rig,
.my-gear-ledger-head.is-equipment,
.my-gear-ledger-summary.is-equipment {
  grid-template-columns:
    minmax(210px, 1.6fr)
    minmax(160px, 1fr)
    minmax(120px, .8fr)
    minmax(95px, .6fr);
}

.my-gear-ledger-item {
  border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.my-gear-ledger-summary {
  padding: .72rem .78rem;
}

.my-gear-ledger-summary > span {
  min-width: 0;
}

.my-gear-ledger-load,
.my-gear-ledger-reel-type,
.my-gear-ledger-current-line {
  font-size: .84rem;
  overflow-wrap: anywhere;
}

.my-gear-ledger-current-line {
  color: #0f172a;
}

.my-gear-ledger-mobile-key {
  display: none;
}

.my-gear-ledger-detail {
  padding-top: .15rem;
}

.my-gear-catalog-specs,
.my-gear-personal-specs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .55rem;
  margin: .75rem 0;
}

.my-gear-catalog-specs > div,
.my-gear-personal-specs > div {
  min-width: 0;
  padding: .55rem .65rem;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 9px;
  background: #fff;
}

.my-gear-catalog-specs dt,
.my-gear-personal-specs dt {
  color: #64748b;
  font-size: .72rem;
  font-weight: 800;
}

.my-gear-catalog-specs dd,
.my-gear-personal-specs dd {
  margin: .15rem 0 0;
  overflow-wrap: anywhere;
  font-size: .86rem;
}

.my-gear-catalog-targets,
.my-gear-catalog-official {
  grid-column: span 2;
}

.my-gear-personal-note {
  margin: .65rem 0;
  padding: .65rem .75rem;
  border-radius: 9px;
  background: rgba(15, 23, 42, 0.035);
}

.my-gear-personal-note > strong {
  display: block;
  margin-bottom: .25rem;
  color: #334155;
  font-size: .78rem;
}

.my-gear-personal-note .fishing-gear-notes {
  margin: 0;
}

.my-gear-remove-form {
  margin-top: .65rem;
}

.my-gear-remove-form button {
  min-height: 40px;
}

.gear-add-footer-action {
  margin-top: 1rem;
}

/* Medium widths can scroll only inside a type table, not the whole page. */
@media (max-width: 1080px) and (min-width: 761px) {
  .my-gear-type-section {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .my-gear-ledger-head.is-rod,
  .my-gear-ledger-summary.is-rod {
    min-width: 820px;
  }

  .my-gear-ledger-head.is-reel,
  .my-gear-ledger-summary.is-reel {
    min-width: 980px;
  }

  .my-gear-ledger-head.is-rig,
  .my-gear-ledger-summary.is-rig,
  .my-gear-ledger-head.is-equipment,
  .my-gear-ledger-summary.is-equipment {
    min-width: 700px;
  }
}

/* iPhone: exactly one compact summary row, tap to reveal the full detail. */
@media (max-width: 760px) {
  .my-gear-type-section {
    border-radius: 10px;
  }

  .my-gear-type-heading {
    padding: .62rem .72rem;
  }

  .my-gear-ledger-head {
    display: none;
  }

  .my-gear-ledger-summary,
  .my-gear-ledger-summary.is-rod,
  .my-gear-ledger-summary.is-reel,
  .my-gear-ledger-summary.is-rig,
  .my-gear-ledger-summary.is-equipment {
    position: relative;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 44%);
    gap: .55rem;
    align-items: center;
    padding: .7rem 1.65rem .7rem .75rem;
    list-style: none;
  }

  .my-gear-ledger-summary::-webkit-details-marker {
    display: none;
  }

  .my-gear-ledger-summary::after {
    content: "›";
    position: absolute;
    right: .65rem;
    top: 50%;
    transform: translateY(-50%);
    color: #0369a1;
    font-size: 1.05rem;
    font-weight: 900;
  }

  .my-gear-ledger-item[open] > .my-gear-ledger-summary::after {
    content: "⌄";
  }

  .my-gear-ledger-product {
    min-width: 0;
  }

  .my-gear-ledger-product strong,
  .my-gear-ledger-product small,
  .my-gear-ledger-mobile-key {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .my-gear-ledger-product strong {
    font-size: .9rem;
  }

  .my-gear-ledger-product small {
    margin-top: .1rem;
  }

  .my-gear-ledger-maker,
  .my-gear-ledger-model,
  .my-gear-ledger-load,
  .my-gear-ledger-reel-type,
  .my-gear-ledger-current-line,
  .my-gear-ledger-state {
    display: none;
  }

  .my-gear-ledger-mobile-key {
    display: block;
    min-width: 0;
    color: #475569;
    text-align: right;
    font-size: .78rem;
    font-weight: 700;
  }

  .my-gear-ledger-detail {
    padding: 0 .5rem .6rem;
  }

  .my-gear-catalog-specs,
  .my-gear-personal-specs {
    grid-template-columns: 1fr 1fr;
    gap: .45rem;
  }

  .my-gear-catalog-targets,
  .my-gear-catalog-official {
    grid-column: 1 / -1;
  }

  .my-gear-remove-form,
  .my-gear-remove-form button {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .my-gear-ledger-summary,
  .my-gear-ledger-summary.is-rod,
  .my-gear-ledger-summary.is-reel,
  .my-gear-ledger-summary.is-rig,
  .my-gear-ledger-summary.is-equipment {
    grid-template-columns: minmax(0, 1fr) minmax(90px, 40%);
    gap: .4rem;
    padding-left: .65rem;
  }

  .my-gear-catalog-specs,
  .my-gear-personal-specs {
    grid-template-columns: 1fr;
  }

  .my-gear-catalog-targets,
  .my-gear-catalog-official {
    grid-column: auto;
  }
}
/* ===== END KMA CSS SOURCE: style-162r21.css ===== */

/* ===== KMA CSS SOURCE 053/101: style-162r22.css ===== */
/* KMA FISHING CLUB 1.62r22
   Responsive / Admin layout consolidation.
   Program-only layer: no data/schema changes. */

/* -------------------------------------------------------------------------
   Common overflow safety
   ------------------------------------------------------------------------- */
html,
body {
  max-width: 100%;
}

.container,
.ui-card,
.form-card,
.admin-list,
.admin-list article,
.admin-tool-grid,
.admin-tool-card,
.account-list,
.account-list .account-card,
.notification-toolbar,
.notification-search-form,
.gear-ledger-page,
.gear-ledger-controls,
.gear-ledger-category,
.gear-master-admin-page,
.gear-master-admin-stack,
.catalog-quality-page,
.catalog-quality-group,
.catalog-quality-item,
.audit-entry,
.weather-page {
  min-width: 0;
}

img,
video,
canvas {
  max-width: 100%;
}

input,
select,
textarea,
button {
  max-width: 100%;
}

.page-intro,
.admin-heading,
.admin-section-heading,
.admin-center-heading,
.admin-trip-control,
.gear-catalog-hero,
.gear-master-admin-hero,
.catalog-quality-hero,
.weather-page-heading,
.notification-settings-heading-row {
  min-width: 0;
}

.page-intro h1,
.admin-heading h1,
.admin-section-heading h2,
.admin-center-heading h1,
.admin-tool-card strong,
.admin-tool-card span,
.account-card-info,
.account-card-info dd,
.catalog-quality-item,
.gear-master-series-card,
.notification-card,
.notice-compact,
.home-notice-item {
  overflow-wrap: anywhere;
}

/* Buttons should wrap their labels instead of becoming thin vertical pills. */
.primary,
.secondary,
.danger,
.button-link,
.ui-button,
.admin-buttons button,
.admin-buttons .button-link,
.account-card-actions button,
.catalog-quality-actions button,
.catalog-quality-actions .button-link,
.gear-master-admin-actions button,
.gear-master-admin-actions .button-link,
.gear-master-admin-row-actions button,
.gear-master-admin-row-actions .button-link {
  white-space: normal;
  word-break: normal;
  overflow-wrap: anywhere;
  text-align: center;
}

/* Keep common action rows flexible before the phone breakpoint. */
.admin-top-actions,
.admin-buttons,
.admin-footer-actions,
.form-actions,
.ui-actions,
.notification-toolbar-actions,
.catalog-quality-actions,
.gear-master-admin-actions,
.gear-master-admin-row-actions,
.gear-primary-actions,
.gear-ledger-control-actions {
  min-width: 0;
  flex-wrap: wrap;
}

/* -------------------------------------------------------------------------
   Header: wrap navigation instead of requiring sideways swipe.
   ------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .primary-nav {
    overflow-x: visible;
    overscroll-behavior-x: auto;
    flex-wrap: wrap;
    row-gap: 4px;
  }

  .primary-nav-link {
    min-width: 0;
  }
}

@media (max-width: 560px) {
  .primary-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    gap: 4px;
  }

  .primary-nav-link {
    width: 100%;
    padding-inline: 7px;
    white-space: normal;
    line-height: 1.2;
  }
}

@media (max-width: 390px) {
  .primary-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* -------------------------------------------------------------------------
   Admin top / tool launcher
   Wide PC = 5 columns, medium = 3, narrow = 2, phone = 1.
   ------------------------------------------------------------------------- */
.admin-tool-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.admin-tool-card {
  align-items: flex-start;
  padding: 13px;
}

.admin-tool-card > * {
  min-width: 0;
}

.admin-heading,
.admin-center-heading,
.admin-section-heading,
.admin-trip-control {
  flex-wrap: wrap;
}

.admin-top-actions {
  justify-content: flex-end;
}

.admin-top-actions > *,
.admin-footer-actions > * {
  min-width: 0;
}

@media (max-width: 1080px) {
  .admin-tool-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .admin-tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-heading,
  .admin-center-heading,
  .admin-section-heading,
  .admin-trip-control {
    align-items: stretch;
    flex-direction: column;
  }

  .admin-top-actions,
  .admin-footer-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .admin-top-actions > *,
  .admin-top-actions form,
  .admin-top-actions .button-link {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .admin-tool-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .admin-tool-card {
    min-height: 0;
  }
}

/* -------------------------------------------------------------------------
   Admin trip/account/list actions
   ------------------------------------------------------------------------- */
.admin-list article {
  min-width: 0;
  overflow: visible;
}

.admin-buttons {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  align-items: stretch;
  gap: 8px;
}

.admin-buttons > *,
.admin-buttons form,
.admin-buttons .button-link,
.admin-buttons button {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.admin-buttons form {
  display: block;
  height: 100%;
}

.admin-buttons .button-link,
.admin-buttons button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  height: 100%;
  padding: 8px 9px;
  line-height: 1.25;
}

@media (max-width: 900px) {
  .admin-list article:not(.account-card) {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "info"
      "actions"
      "weather"
      "photos";
    align-items: stretch;
  }

  .admin-list article:not(.account-card) > .admin-buttons {
    width: 100%;
  }
}

@media (max-width: 600px) {
  .admin-buttons {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-buttons .button-link,
  .admin-buttons button {
    min-height: 46px;
    padding: 8px;
    font-size: .8rem;
    white-space: normal;
  }

  .desktop-label,
  .mobile-label {
    white-space: normal !important;
  }
}

@media (max-width: 420px) {
  .admin-buttons {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Account administration: move actions below account info before they become
   cramped; preserve the existing password reset/details row. */
@media (max-width: 900px) {
  .account-list .account-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "account-info"
      "account-actions"
      "account-password";
    align-items: stretch;
    gap: 14px;
  }

  .account-card-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    justify-content: stretch;
  }

  .account-card-actions form,
  .account-card-actions button,
  .account-card-actions > .account-profile-edit {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .account-card-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------------------------------
   Filters / stats / summary cards
   ------------------------------------------------------------------------- */
.gear-ledger-counts {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.gear-ledger-filter-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.gear-master-admin-summary,
.forecast-summary-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.catalog-quality-summary {
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
}

@media (max-width: 1050px) {
  .gear-ledger-counts,
  .gear-ledger-filter-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gear-master-admin-summary,
  .forecast-summary-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .gear-ledger-counts,
  .gear-ledger-filter-grid,
  .gear-master-admin-summary,
  .forecast-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-ledger-filter-grid select,
  .gear-ledger-filter-grid input,
  .notification-search-form select,
  .notification-search-form input {
    min-width: 0;
  }

  .gear-ledger-control-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-ledger-control-actions > * {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .gear-ledger-filter-grid,
  .gear-master-admin-summary,
  .forecast-summary-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  /* Counts remain two-up because they are short numeric cards. */
  .gear-ledger-counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-ledger-control-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* Catalog / gear-master editing rows should not squeeze controls. */
.catalog-admin-inline {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gear-master-series-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gear-master-admin-actions > *,
.gear-master-admin-row-actions > *,
.catalog-quality-actions > * {
  min-width: 0;
}

@media (max-width: 900px) {
  .catalog-admin-inline {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-master-admin-hero,
  .gear-master-admin-heading,
  .gear-master-series-heading,
  .gear-master-series-card-heading,
  .catalog-quality-group-heading,
  .catalog-quality-item-heading {
    flex-wrap: wrap;
  }
}

@media (max-width: 600px) {
  .catalog-admin-inline,
  .gear-master-series-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .catalog-quality-actions,
  .gear-master-admin-actions,
  .gear-master-admin-row-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .catalog-quality-actions > *,
  .gear-master-admin-actions > *,
  .gear-master-admin-row-actions > *,
  .catalog-quality-actions form,
  .gear-master-admin-actions form,
  .gear-master-admin-row-actions form {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 420px) {
  .catalog-quality-actions,
  .gear-master-admin-actions,
  .gear-master-admin-row-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------------------------------
   Search/filter forms
   ------------------------------------------------------------------------- */
@media (max-width: 900px) and (min-width: 641px) {
  .notification-search-form {
    grid-template-columns: minmax(0, 1fr) minmax(180px, .65fr);
  }

  .notification-search-form > .ui-button,
  .notification-search-form > a,
  .notification-search-form > button {
    width: 100%;
  }

  .archive-search {
    grid-template-columns: minmax(0, 1fr) minmax(160px, .55fr);
  }
}

@media (max-width: 640px) {
  .notification-search-form,
  .archive-search {
    grid-template-columns: minmax(0, 1fr);
  }

  .notification-search-form .ui-button,
  .archive-search .primary,
  .archive-search .secondary,
  .archive-search .button-link {
    width: 100%;
  }
}

/* -------------------------------------------------------------------------
   Logs: mobile card presentation avoids a horizontally scrolling admin table.
   ------------------------------------------------------------------------- */
@media (max-width: 700px) {
  .log-table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .log-table {
    min-width: 0;
    width: 100%;
    display: block;
  }

  .log-table thead {
    display: none;
  }

  .log-table tbody,
  .log-table tr,
  .log-table td {
    display: block;
    width: 100%;
  }

  .log-table tr {
    margin-bottom: 10px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 14px #0f38540a;
  }

  .log-table td {
    min-width: 0;
    padding: 6px 0;
    border: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .log-table td::before {
    display: block;
    margin-bottom: 2px;
    color: #64748b;
    font-size: .68rem;
    font-weight: 900;
  }

  .log-table td:nth-child(1)::before { content: "日時"; }
  .log-table td:nth-child(2)::before { content: "種類"; }
  .log-table td:nth-child(3)::before { content: "釣行"; }
  .log-table td:nth-child(4)::before { content: "名前"; }
  .log-table td:nth-child(5)::before { content: "内容"; }

  .log-time {
    width: auto;
  }

  .log-details {
    min-width: 0;
  }
}

/* -------------------------------------------------------------------------
   Notice / notification rows
   ------------------------------------------------------------------------- */
.notification-toolbar,
.notification-card-heading,
.notification-card-title-row,
.notice-compact > summary,
.past-notice-summary,
.club-notices-heading {
  min-width: 0;
}

@media (max-width: 600px) {
  .notification-toolbar {
    align-items: stretch;
  }

  .notification-toolbar-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .notification-toolbar-actions > *,
  .notification-toolbar-actions form,
  .notification-toolbar-actions .ui-button {
    width: 100%;
    min-width: 0;
  }

  .notice-compact > summary,
  .past-notice-summary {
    max-width: 100%;
  }
}

@media (max-width: 420px) {
  .notification-toolbar-actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------------------------------
   My Page / general form grids
   ------------------------------------------------------------------------- */
.my-page-hub-grid,
.my-page-purpose-grid,
.my-page-year-summary,
.personal-note-summary-grid,
.fishing-gear-form-grid,
.reel-line-form-grid,
.reel-line-spec-grid {
  min-width: 0;
}

@media (max-width: 760px) {
  .my-page-hub-grid,
  .my-page-year-summary,
  .personal-note-summary-grid,
  .fishing-gear-form-grid,
  .reel-line-form-grid,
  .reel-line-spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-actions {
    width: 100%;
  }

  .form-actions > button,
  .form-actions > .button-link {
    min-width: 0;
  }
}

@media (max-width: 480px) {
  .my-page-hub-grid,
  .my-page-year-summary,
  .personal-note-summary-grid,
  .fishing-gear-form-grid,
  .reel-line-form-grid,
  .reel-line-spec-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------------------------------
   Photo grids: use progressive columns instead of tiny fixed cards.
   ------------------------------------------------------------------------- */
.photo-grid,
.photo-organizer-grid,
.photo-swap-options,
.photo-destination-grid,
.photo-gallery-body[data-photo-sort-board] .photo-grid,
.admin-photo-sort-board .photo-organizer-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

@media (max-width: 1000px) {
  .photo-grid,
  .photo-organizer-grid,
  .photo-swap-options,
  .photo-destination-grid,
  .photo-gallery-body[data-photo-sort-board] .photo-grid,
  .admin-photo-sort-board .photo-organizer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 600px) {
  .photo-grid,
  .photo-organizer-grid,
  .photo-swap-options,
  .photo-destination-grid,
  .photo-gallery-body[data-photo-sort-board] .photo-grid,
  .admin-photo-sort-board .photo-organizer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 360px) {
  .photo-swap-options,
  .photo-destination-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------------------------------
   Very narrow viewport finishing rules
   ------------------------------------------------------------------------- */
@media (max-width: 430px) {
  .container {
    width: calc(100% - 16px);
  }

  .ui-card,
  .form-card,
  .trip-card {
    padding-left: 14px;
    padding-right: 14px;
  }

  .admin-photo-page-card,
  .forecast-block {
    padding-left: 11px;
    padding-right: 11px;
  }

  .pagination {
    width: 100%;
    gap: 8px;
  }

  .pagination > * {
    min-width: 0;
  }

  .pagination .button-link {
    flex: 1 1 0;
  }
}


/* -------------------------------------------------------------------------
   Data tables: member directory and weather use their existing data-label
   attributes as phone cards so reading never depends on horizontal swiping.
   ------------------------------------------------------------------------- */
@media (max-width: 700px) {
  .member-directory-table-wrap,
  .weather-table-wrap {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .member-directory-table,
  .weather-hourly-table {
    display: block;
    width: 100%;
    min-width: 0;
    table-layout: auto;
    background: transparent;
  }

  .member-directory-table thead,
  .weather-hourly-table thead {
    display: none;
  }

  .member-directory-table tbody,
  .member-directory-table tr,
  .member-directory-table td,
  .weather-hourly-table tbody,
  .weather-hourly-table tr,
  .weather-hourly-table td {
    display: block;
    width: 100%;
  }

  .member-directory-table tr,
  .weather-hourly-table tr {
    margin-bottom: 10px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 4px 14px #0f38540a;
  }

  .member-directory-table .member-directory-chief {
    background: #fff9e8;
  }

  .member-directory-table td,
  .weather-hourly-table td {
    min-width: 0 !important;
    max-width: none !important;
    padding: 6px 0;
    border: 0;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  .member-directory-table td::before,
  .weather-hourly-table td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: #64748b;
    font-size: .68rem;
    font-weight: 900;
  }

  .member-directory-table td:nth-child(1),
  .member-directory-table td:nth-child(2),
  .member-directory-table td:nth-child(3),
  .member-directory-table td:nth-child(4) {
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .member-directory-trip-cell,
  .member-directory-trip-cell span {
    display: block;
    white-space: normal;
  }

  .member-directory-trip-cell span + span::before {
    content: none;
  }
}
/* ===== END KMA CSS SOURCE: style-162r22.css ===== */

/* ===== KMA CSS SOURCE 054/101: style-162r23.css ===== */
/* KMA FISHING CLUB 1.62r23
   My Gear key specs / RSVP joint-name attendance / reel-line registration.
   Program-only layer: no data/schema changes. */

/* -------------------------------------------------------------------------
   My Gear ledger: put operational specs first, maker/series last.
   ------------------------------------------------------------------------- */
.my-gear-ledger-head.is-rod,
.my-gear-ledger-summary.is-rod {
  grid-template-columns:
    minmax(185px, 1.45fr)
    minmax(105px, .78fr)
    minmax(82px, .55fr)
    minmax(105px, .72fr)
    minmax(92px, .62fr)
    minmax(145px, 1fr);
}

.my-gear-ledger-head.is-reel,
.my-gear-ledger-summary.is-reel {
  grid-template-columns:
    minmax(175px, 1.3fr)
    minmax(105px, .72fr)
    minmax(105px, .72fr)
    minmax(210px, 1.45fr)
    minmax(92px, .6fr)
    minmax(145px, .95fr);
}

.my-gear-ledger-head.is-rig,
.my-gear-ledger-summary.is-rig,
.my-gear-ledger-head.is-equipment,
.my-gear-ledger-summary.is-equipment {
  grid-template-columns:
    minmax(210px, 1.55fr)
    minmax(120px, .82fr)
    minmax(95px, .62fr)
    minmax(155px, 1fr);
}

.my-gear-ledger-length {
  font-size: .84rem;
  white-space: nowrap;
}

.my-gear-ledger-maker {
  color: #64748b;
}

.my-gear-ledger-maker small {
  color: #64748b;
}

@media (max-width: 1080px) and (min-width: 761px) {
  .my-gear-ledger-head.is-rod,
  .my-gear-ledger-summary.is-rod {
    min-width: 850px;
  }

  .my-gear-ledger-head.is-reel,
  .my-gear-ledger-summary.is-reel {
    min-width: 950px;
  }

  .my-gear-ledger-head.is-rig,
  .my-gear-ledger-summary.is-rig,
  .my-gear-ledger-head.is-equipment,
  .my-gear-ledger-summary.is-equipment {
    min-width: 680px;
  }
}

@media (max-width: 760px) {
  .my-gear-ledger-length {
    display: none;
  }

  .my-gear-ledger-summary.is-rod {
    grid-template-columns: minmax(0, 1fr) minmax(130px, 48%);
  }

  .my-gear-ledger-mobile-key {
    font-size: .76rem;
  }
}

@media (max-width: 430px) {
  .my-gear-ledger-summary.is-rod {
    grid-template-columns: minmax(0, 1fr) minmax(125px, 49%);
  }
}

/* -------------------------------------------------------------------------
   Reel line registration: unregistered reels show the form immediately.
   ------------------------------------------------------------------------- */
.reel-line-empty {
  display: grid;
  gap: .2rem;
  color: #475569;
}

.reel-line-empty strong {
  color: #9a3412;
  font-size: .86rem;
}

.reel-line-empty p {
  margin: 0;
}

.reel-line-panel.is-first-registration {
  margin-top: .8rem;
  padding: .55rem .65rem .65rem;
  border: 1px solid rgba(2, 132, 199, .22);
  border-radius: 10px;
  background: rgba(240, 249, 255, .72);
}

.reel-line-panel.is-first-registration > summary {
  color: #0369a1;
  font-weight: 900;
}

.reel-line-panel.is-first-registration > summary::before {
  content: "＋";
  margin-right: .15rem;
}

.reel-line-register-button {
  min-height: 42px;
}

@media (max-width: 640px) {
  .reel-line-register-button {
    width: 100%;
  }
}

/* -------------------------------------------------------------------------
   RSVP: clearly separate the one representative from multiple companions.
   ------------------------------------------------------------------------- */
.rsvp-name-quick-picks-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .35rem .65rem;
  margin: .2rem 0 .45rem;
}

.rsvp-name-quick-picks-heading strong {
  color: #334155;
  font-size: .82rem;
}

.rsvp-name-quick-picks-heading span {
  color: #64748b;
  font-size: .72rem;
}

.trip-companion-selector {
  transition: opacity .15s ease, border-color .15s ease, background .15s ease;
}

.trip-companion-selector-heading > div {
  min-width: 0;
  display: grid;
  gap: .15rem;
}

.trip-companion-selector-heading small {
  color: #64748b;
  line-height: 1.4;
}

.trip-companion-owner {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  max-width: 100%;
  margin: 0 0 .55rem;
  padding: .38rem .62rem;
  border: 1px solid #d7e0e8;
  border-radius: 999px;
  background: #fff;
  color: #64748b;
}

.trip-companion-owner span {
  font-size: .7rem;
  font-weight: 800;
}

.trip-companion-owner strong {
  min-width: 0;
  overflow-wrap: anywhere;
  color: #334155;
  font-size: .82rem;
}

.trip-companion-owner.is-active {
  border-color: #7dd3fc;
  background: #f0f9ff;
}

.trip-companion-selector.is-disabled .trip-companion-options {
  opacity: .58;
}

.trip-companion-selector.is-disabled .trip-companion-option {
  cursor: not-allowed;
}

.trip-companion-selector.is-ready {
  border-color: #bae6fd;
  background: #f8fcff;
}

.trip-companion-option:has(input:checked) {
  border-color: #0284c7;
  box-shadow: 0 0 0 2px rgba(2, 132, 199, .08);
}

@media (max-width: 680px) {
  .trip-companion-selector-heading > div {
    width: 100%;
  }

  .trip-companion-owner {
    width: 100%;
    border-radius: 10px;
  }
}


/* -------------------------------------------------------------------------
   RSVP joint-name mode: two displayed names may count as one participation
   unit when two people share one rod.  The stored representative remains the
   signed-in account owner; the selected companion is display metadata.
   ------------------------------------------------------------------------- */
.trip-companion-mode {
  display: grid;
  gap: .45rem;
  margin: .35rem 0 .7rem;
  padding: .65rem;
  border: 1px solid #dbe4ec;
  border-radius: 12px;
  background: #fff;
}

.trip-companion-mode > legend {
  padding: 0 .25rem;
  color: #334155;
  font-size: .78rem;
  font-weight: 900;
}

.trip-companion-mode > label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .5rem;
  margin: 0;
  padding: .5rem .55rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
  cursor: pointer;
}

.trip-companion-mode > label:has(input:checked) {
  border-color: #38bdf8;
  background: #f0f9ff;
  box-shadow: 0 0 0 2px rgba(14, 165, 233, .08);
}

.trip-companion-mode input {
  margin-top: .22rem;
}

.trip-companion-mode label > span {
  min-width: 0;
  display: grid;
  gap: .1rem;
}

.trip-companion-mode label strong {
  color: #0f172a;
  font-size: .82rem;
}

.trip-companion-mode label small {
  color: #64748b;
  font-size: .72rem;
  line-height: 1.45;
}

.trip-companion-selector.is-joint-one {
  border-color: #7dd3fc;
  background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
}

.trip-companion-selector.is-joint-one .trip-companion-help {
  color: #075985;
  font-weight: 800;
}

.participant-count-field input[readonly] {
  background: #f1f5f9;
  color: #0f172a;
  font-weight: 900;
}

.joint-name-badge,
.joint-one-breakdown {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-size: .72rem;
  font-weight: 900;
  line-height: 1.35;
}

.joint-name-badge {
  padding: .18rem .48rem;
}

.joint-one-breakdown {
  padding: .18rem .52rem;
}

@media (max-width: 680px) {
  .trip-companion-mode {
    padding: .55rem;
  }

  .trip-companion-mode > label {
    padding: .55rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r23.css ===== */

/* ===== KMA CSS SOURCE 055/101: style-162r24.css ===== */
/* KMA FISHING CLUB 1.62r24
   RSVP post-save focus, concise joint-name display, and companion checkbox balance.
   PROGRAM-only layer; no data/schema changes. */

/* The legacy RSVP input rule gives every non-radio input width:100%.
   Companion checkboxes must remain normal control size. */
.rsvp-form .trip-companion-option input[type="checkbox"],
.edit-rsvp-form .trip-companion-option input[type="checkbox"] {
  display: inline-block;
  width: 20px;
  min-width: 20px;
  max-width: 20px;
  height: 20px;
  min-height: 20px;
  margin: 0;
  padding: 0;
  flex: 0 0 20px;
  border-radius: 5px;
  vertical-align: middle;
}

.rsvp-form .trip-companion-option,
.edit-rsvp-form .trip-companion-option {
  display: flex;
  align-items: center;
}

.rsvp-save-confirmation {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: .16rem .5rem;
  border: 1px solid #86efac;
  border-radius: 999px;
  background: #f0fdf4;
  color: #166534;
  font-size: .72rem;
  font-weight: 900;
  line-height: 1.3;
}

@media (max-width: 680px) {
  .trip-companion-options {
    gap: .4rem;
  }

  .rsvp-form .trip-companion-option,
  .edit-rsvp-form .trip-companion-option {
    min-height: 46px;
    padding: .48rem .55rem;
    gap: .55rem;
  }

  .rsvp-form .trip-companion-option input[type="checkbox"],
  .edit-rsvp-form .trip-companion-option input[type="checkbox"] {
    width: 18px;
    min-width: 18px;
    max-width: 18px;
    height: 18px;
    min-height: 18px;
    flex-basis: 18px;
  }
}
/* ===== END KMA CSS SOURCE: style-162r24.css ===== */

/* ===== KMA CSS SOURCE 056/101: style-162r25.css ===== */
/* KMA FISHING CLUB 1.62r25
   RSVP quick access / My Page upcoming RSVP / gear action visibility /
   name-first responsive RSVP rows.
   PROGRAM-only layer; no schema/data changes. */

/* -------------------------------------------------------------------------
   Trip: frequent RSVP actions belong near the title, not deep in details.
   ------------------------------------------------------------------------- */
.trip-rsvp-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: .8rem;
}

.trip-rsvp-quick-actions > a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.trip-rsvp-quick-button {
  min-width: 190px;
}

.trip-party-quick-button {
  min-width: 170px;
}

@media (max-width: 640px) {
  .trip-rsvp-quick-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .trip-rsvp-quick-actions > a {
    width: 100%;
    min-width: 0;
  }

  /* Keep the edit action visually secondary to the RSVP action. */
  .trip-detail-actions {
    margin-top: .55rem;
  }
}


/* -------------------------------------------------------------------------
   My Page: upcoming RSVP status should be visible without hunting through the
   yearly history panel.
   ------------------------------------------------------------------------- */
.my-page-upcoming-rsvp-card {
  overflow: hidden;
}

.my-page-upcoming-rsvp-list {
  display: grid;
  gap: .45rem;
}

.my-page-upcoming-rsvp-row {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(132px, .7fr) minmax(220px, 1.7fr) auto auto;
  align-items: center;
  gap: .65rem .8rem;
  padding: .7rem .8rem;
  border: 1px solid rgba(15, 23, 42, .1);
  border-radius: 10px;
  background: #fff;
  color: inherit;
  text-decoration: none;
}

.my-page-upcoming-rsvp-row:hover {
  border-color: #7dd3fc;
  background: #f8fcff;
}

.my-page-upcoming-rsvp-date {
  color: #475569;
  font-size: .82rem;
  font-weight: 800;
  white-space: nowrap;
}

.my-page-upcoming-rsvp-title {
  min-width: 0;
  display: grid;
  gap: .1rem;
}

.my-page-upcoming-rsvp-title strong {
  overflow-wrap: anywhere;
  color: #0f172a;
}

.my-page-upcoming-rsvp-title small {
  color: #64748b;
}

.my-page-upcoming-rsvp-status {
  min-width: 62px;
  padding: .25rem .55rem;
  border-radius: 999px;
  text-align: center;
  font-size: .78rem;
  font-weight: 900;
  white-space: nowrap;
}

.my-page-upcoming-rsvp-status.status-attend {
  background: #dcfce7;
  color: #166534;
}

.my-page-upcoming-rsvp-status.status-absent {
  background: #fee2e2;
  color: #991b1b;
}

.my-page-upcoming-rsvp-status.status-undecided {
  background: #fef3c7;
  color: #92400e;
}

.my-page-upcoming-rsvp-status.status-unanswered {
  background: #e2e8f0;
  color: #475569;
}

.my-page-upcoming-rsvp-action {
  color: #0369a1;
  font-size: .82rem;
  font-weight: 900;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .my-page-upcoming-rsvp-row {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "date status"
      "title title"
      "action action";
    gap: .25rem .55rem;
    padding: .68rem .72rem;
  }

  .my-page-upcoming-rsvp-date { grid-area: date; }
  .my-page-upcoming-rsvp-title { grid-area: title; }
  .my-page-upcoming-rsvp-status { grid-area: status; }
  .my-page-upcoming-rsvp-action {
    grid-area: action;
    justify-self: start;
    margin-top: .15rem;
  }
}


/* -------------------------------------------------------------------------
   My Gear: rod and reel operational specs use the same summary position.
   ------------------------------------------------------------------------- */
@media (max-width: 760px) {
  .my-gear-ledger-summary.is-rod,
  .my-gear-ledger-summary.is-reel {
    grid-template-columns: minmax(0, 1fr) minmax(138px, 42%);
  }

  .my-gear-ledger-mobile-key {
    width: 100%;
    justify-self: stretch;
    text-align: right;
    font-variant-numeric: tabular-nums;
  }
}

@media (max-width: 430px) {
  .my-gear-ledger-summary.is-rod,
  .my-gear-ledger-summary.is-reel {
    grid-template-columns: minmax(0, 1fr) minmax(126px, 44%);
  }

  .my-gear-ledger-mobile-key {
    font-size: .73rem;
  }
}


/* -------------------------------------------------------------------------
   CLUB Catalog: the ownership state and action must never disappear off the
   right edge. Wide desktop keeps the table with sticky action columns;
   medium/narrow screens use the existing card/list layout.
   ------------------------------------------------------------------------- */
.gear-ledger-ownership-head,
.gear-ledger-ownership-cell {
  position: sticky;
  right: 176px;
  z-index: 2;
  background: #fff;
  box-shadow: -8px 0 12px -14px rgba(15, 23, 42, .6);
}

.gear-ledger-action-head,
.gear-ledger-action-cell {
  position: sticky;
  right: 0;
  z-index: 3;
  width: 176px;
  min-width: 176px;
  max-width: 176px;
  background: #fff;
  box-shadow: -8px 0 16px -14px rgba(15, 23, 42, .65);
}

.gear-ledger-table thead .gear-ledger-ownership-head,
.gear-ledger-table thead .gear-ledger-action-head {
  z-index: 5;
  background: #f8fafc;
}

.gear-ledger-table tbody tr:hover .gear-ledger-ownership-cell,
.gear-ledger-table tbody tr:hover .gear-ledger-action-cell {
  background: #f8fcff;
}

@media (max-width: 1100px) {
  .gear-ledger-desktop {
    display: none;
  }

  .gear-ledger-mobile {
    display: grid;
  }

  .gear-ledger-mobile-item > summary {
    align-items: flex-start;
  }

  .gear-ledger-mobile-add {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }
}


/* -------------------------------------------------------------------------
   RSVP answer list: name is the primary information on narrow screens.
   Badges move below it instead of squeezing the name out of view.
   ------------------------------------------------------------------------- */
@media (max-width: 760px) {
  .response-item {
    grid-template-columns: auto minmax(0, 1fr) !important;
    grid-template-areas:
      "status name"
      "counts counts"
      "actions actions"
      "comment comment" !important;
    align-items: start !important;
    gap: .45rem .6rem !important;
  }

  .response-item > .status {
    align-self: start;
  }

  .member-name-expand {
    min-width: 0;
    width: 100%;
  }

  .member-name-expand summary {
    width: 100%;
  }

  .member-name-expand summary span {
    display: block;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
    font-size: .98rem;
    line-height: 1.45;
  }

  .response-counts {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
    white-space: normal;
  }

  .response-actions {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .response-account-badge {
    display: none;
  }

  .rsvp-save-confirmation {
    order: 20;
  }

  .response-comment {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .response-item {
    grid-template-columns: auto minmax(0, 1fr) !important;
  }

  .response-actions > *,
  .response-actions form {
    min-width: 0;
  }
}
/* ===== END KMA CSS SOURCE: style-162r25.css ===== */

/* ===== KMA CSS SOURCE 057/101: style-162r26.css ===== */
/* KMA FISHING CLUB 1.62r26
   Compact action layout / profile-first upcoming trips / RSVP row polish.
   PROGRAM-only layer. */

/* -------------------------------------------------------------------------
   Trip actions: frequent actions stay visible without dominating the card.
   ------------------------------------------------------------------------- */
.home-next-trip-header {
  gap: .7rem;
  align-items: flex-start;
}

.home-next-trip-actions,
.trip-primary-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: .38rem;
}

.home-next-trip-actions {
  min-width: min(360px, 46%);
  max-width: 430px;
}

.trip-primary-actions {
  width: min(100%, 620px);
  margin-top: .72rem;
}

.trip-compact-action {
  min-width: 0;
  min-height: 38px;
  padding: .48rem .62rem;
  border: 1px solid #73cfff;
  border-radius: 10px;
  background: #fff;
  color: #036a9e;
  text-decoration: none;
  font-size: .78rem;
  font-weight: 900;
  line-height: 1.2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .28rem;
  text-align: center;
  white-space: nowrap;
  box-sizing: border-box;
}

.trip-compact-action:hover {
  background: #eefaff;
}

.trip-compact-action.is-rsvp {
  background: #0b78ae;
  border-color: #0b78ae;
  color: #fff;
}

.trip-compact-action.is-party {
  border-color: #f0b96d;
  color: #925513;
  background: #fffaf2;
}

.trip-compact-action.is-answered span {
  display: inline-flex;
  align-items: center;
  padding: .12rem .34rem;
  border-radius: 999px;
  background: rgba(255,255,255,.88);
  color: #166534;
  font-size: .68rem;
  line-height: 1;
}

.trip-compact-action.is-party.is-answered span {
  color: #925513;
}

@media (max-width: 760px) {
  .home-next-trip-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .home-next-trip-actions {
    width: 100%;
    min-width: 0;
    max-width: none;
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  }

  .trip-primary-actions {
    grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  }

  .trip-compact-action {
    min-height: 36px;
    padding: .42rem .34rem;
    font-size: .72rem;
  }
}

@media (max-width: 370px) {
  .trip-compact-action {
    font-size: .66rem;
    letter-spacing: -.02em;
  }

  .trip-compact-action.is-answered span {
    display: none;
  }
}


/* -------------------------------------------------------------------------
   My Page: upcoming trips belong directly under the profile and stay compact
   until the member asks to see the list.
   ------------------------------------------------------------------------- */
.my-page-upcoming-rsvp-compact {
  padding: 0 !important;
  overflow: hidden;
}

.my-page-upcoming-rsvp-summary {
  list-style: none;
  cursor: pointer;
  padding: .72rem .9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
  min-height: 54px;
}

.my-page-upcoming-rsvp-summary::-webkit-details-marker {
  display: none;
}

.my-page-upcoming-rsvp-summary > span:first-child {
  min-width: 0;
  display: grid;
  gap: .12rem;
}

.my-page-upcoming-rsvp-summary strong {
  color: #0c3856;
}

.my-page-upcoming-rsvp-summary small {
  color: #64748b;
  font-size: .75rem;
}

.my-page-upcoming-rsvp-summary-meta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  white-space: nowrap;
}

.my-page-upcoming-rsvp-summary-meta > strong {
  padding: .22rem .48rem;
  border-radius: 999px;
  background: #eff6ff;
  color: #334155;
  font-size: .78rem;
}

.my-page-upcoming-rsvp-disclosure {
  color: #0369a1;
  font-size: .75rem;
  font-weight: 900;
}

.my-page-upcoming-rsvp-compact[open] .my-page-upcoming-rsvp-disclosure {
  font-size: 0;
}

.my-page-upcoming-rsvp-compact[open] .my-page-upcoming-rsvp-disclosure::after {
  content: "閉じる";
  font-size: .75rem;
}

.my-page-upcoming-rsvp-body {
  border-top: 1px solid rgba(15,23,42,.08);
  padding: .7rem .78rem .82rem;
}

.my-page-upcoming-rsvp-row {
  padding: .55rem .62rem;
}

@media (max-width: 760px) {
  .my-page-upcoming-rsvp-summary {
    padding: .62rem .72rem;
  }

  .my-page-upcoming-rsvp-body {
    padding: .58rem .62rem .68rem;
  }
}


/* -------------------------------------------------------------------------
   RSVP list: name and edit controls share the first row; count/joint metadata
   sits directly under the name, keeping each answer short on mobile.
   ------------------------------------------------------------------------- */
.response-item {
  display: block !important;
  min-width: 0;
  padding: .62rem .2rem !important;
}

.response-primary-line {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: .48rem .62rem;
  min-width: 0;
}

.response-name-stack {
  min-width: 0;
  display: grid;
  gap: .18rem;
}

.response-name-stack .member-name-expand,
.response-name-stack .member-name-expand summary {
  min-width: 0;
  width: 100%;
}

.response-name-stack .member-name-expand summary span {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
  font-size: .98rem;
  line-height: 1.32;
  font-weight: 900;
}

.response-name-stack .response-counts {
  display: flex;
  align-items: center;
  gap: .28rem;
  flex-wrap: wrap;
  min-width: 0;
}

.response-name-stack .response-counts > span {
  margin: 0;
}

.response-primary-line .response-actions {
  display: flex;
  align-items: center;
  gap: .3rem;
  flex-wrap: nowrap;
  width: auto;
  margin: 0;
}

.response-primary-line .response-actions button,
.response-primary-line .response-actions form,
.response-primary-line .response-actions form button {
  min-width: 0 !important;
  min-height: 32px !important;
  height: 32px;
  margin: 0 !important;
}

.response-primary-line .response-actions button {
  padding: .32rem .58rem !important;
  font-size: .72rem !important;
  line-height: 1 !important;
  border-radius: 8px !important;
}

.response-companions,
.response-attendance-breakdown,
.response-account-note,
.response-comment {
  margin-top: .38rem;
}

@media (max-width: 760px) {
  .response-primary-line {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .4rem .48rem;
  }

  .response-primary-line > .status {
    align-self: start;
    margin-top: .04rem;
  }

  .response-name-stack .response-account-badge {
    display: none;
  }

  .response-name-stack .people-badge,
  .response-name-stack .joint-name-badge,
  .response-name-stack .rod-badge,
  .response-name-stack .rsvp-save-confirmation {
    font-size: .68rem;
    line-height: 1.2;
    padding: .18rem .38rem;
  }

  .response-primary-line .response-actions {
    align-self: start;
  }

  .response-primary-line .response-actions button {
    padding: .3rem .45rem !important;
    font-size: .68rem !important;
  }
}

@media (max-width: 410px) {
  .response-primary-line {
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: .32rem .38rem;
  }

  .response-primary-line .response-actions {
    gap: .2rem;
  }

  .response-primary-line .response-actions button {
    padding-inline: .34rem !important;
  }
}


/* -------------------------------------------------------------------------
   Catalog hero: action buttons are compact and aligned instead of forming a
   tall right-hand stack.
   ------------------------------------------------------------------------- */
.gear-catalog-hero {
  display: block !important;
}

.gear-catalog-hero-actions {
  margin-top: .85rem;
  display: flex !important;
  align-items: center;
  flex-wrap: wrap;
  gap: .42rem;
}

.gear-catalog-hero-actions > a {
  width: auto !important;
  min-width: 0 !important;
  min-height: 36px !important;
  padding: .46rem .68rem !important;
  font-size: .78rem !important;
  line-height: 1.2;
  border-radius: 9px;
  box-sizing: border-box;
}

@media (max-width: 640px) {
  .gear-catalog-hero-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-catalog-hero-actions > a {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .gear-catalog-hero-actions > a:first-child,
  .gear-catalog-hero-actions > .gear-catalog-my-page-link {
    grid-column: span 2;
  }
}

@media (max-width: 360px) {
  .gear-catalog-hero-actions {
    grid-template-columns: 1fr;
  }

  .gear-catalog-hero-actions > a:first-child,
  .gear-catalog-hero-actions > .gear-catalog-my-page-link {
    grid-column: auto;
  }
}
/* ===== END KMA CSS SOURCE: style-162r26.css ===== */

/* ===== KMA CSS SOURCE 058/101: style-162r27.css ===== */
/* KMA FISHING CLUB 1.62r27
   Wide-page alignment for My Page and CLUB Gear Catalog.
   PROGRAM-only: no DB/schema changes.

   Historical shared styles intentionally keep normal forms narrow.
   My Page and Catalog are information-dense screens, so on wide displays
   they use one page-width baseline instead of mixing 720px / 760px cards
   with full-width ledgers and counters.
*/

:root {
  --kma-wide-page-max: 1600px;
  --kma-wide-page-gutter: 28px;
}

/* Widen only explicitly opted-in pages. Other forms/admin screens keep
   their established reading width. */
.container.page-wide {
  width: min(var(--kma-wide-page-max), calc(100% - var(--kma-wide-page-gutter))) !important;
  max-width: none !important;
  margin-left: auto;
  margin-right: auto;
}

/* -------------------------------------------------------------------------
   My Page
   ------------------------------------------------------------------------- */
.my-page-container .my-page-stack {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.my-page-container .my-page-stack > .form-card,
.my-page-container .my-page-stack > details.form-card {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

/* Let dense My Page grids benefit from the available desktop width while
   retaining the existing responsive breakpoints at narrower widths. */
@media (min-width: 1180px) {
  .my-page-container .my-page-hub-grid,
  .my-page-container .my-page-purpose-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .my-page-container .my-page-privacy-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* -------------------------------------------------------------------------
   CLUB Gear Catalog
   ------------------------------------------------------------------------- */
.gear-catalog-container .gear-catalog-page,
.gear-catalog-container .gear-ledger-page {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.gear-catalog-container .gear-catalog-page > .form-card,
.gear-catalog-container .gear-catalog-page > details.form-card,
.gear-catalog-container .gear-ledger-controls,
.gear-catalog-container .gear-ledger-category,
.gear-catalog-container .gear-catalog-no-results,
.gear-catalog-container .gear-catalog-next-action,
.gear-catalog-container .gear-catalog-readonly {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

.gear-catalog-container .gear-ledger-counts,
.gear-catalog-container .gear-ledger-result-summary,
.gear-catalog-container .gear-ledger-category-stack {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}

/* Use the extra horizontal space instead of leaving a large unused center
   gutter. Five filters line up with the five count cards on wide screens. */
@media (min-width: 1180px) {
  .gear-catalog-container .gear-ledger-counts,
  .gear-catalog-container .gear-ledger-filter-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .gear-catalog-container .gear-ledger-control-form {
    width: 100%;
  }

  .gear-catalog-container .gear-ledger-search-fieldset {
    width: 100%;
  }

  .gear-catalog-container .gear-ledger-desktop {
    width: 100%;
    max-width: 100%;
  }

  .gear-catalog-container .gear-ledger-table {
    width: 100%;
  }
}

/* Keep edge gutters comfortable on tablets and phones. Existing r22/r25
   layout breakpoints continue to decide grid/card behavior. */
@media (max-width: 760px) {
  :root {
    --kma-wide-page-gutter: 16px;
  }

  .container.page-wide {
    width: calc(100% - var(--kma-wide-page-gutter)) !important;
  }
}
/* ===== END KMA CSS SOURCE: style-162r27.css ===== */

/* ===== KMA CSS SOURCE 059/101: style-162r29.css ===== */
.trip-personal-gear-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid #cfe4ef;
  border-radius: 12px;
  background: #f6fbfe;
}
.trip-personal-gear-entry > div {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.trip-personal-gear-entry small {
  color: #607186;
}
.trip-personal-gear-entry .button-link {
  flex: 0 0 auto;
  white-space: nowrap;
}


/* KMA FISHING CLUB 1.62r29
   Trip x My Gear: planned gear + immutable used-gear snapshots. */

.my-page-upcoming-rsvp-row-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 8px;
}
.my-page-upcoming-rsvp-row-wrap + .my-page-upcoming-rsvp-row-wrap {
  margin-top: 8px;
}
.my-page-upcoming-rsvp-row-wrap .my-page-upcoming-rsvp-row {
  min-width: 0;
}
.my-page-upcoming-gear-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 104px;
  padding: 8px 12px;
  border: 1px solid #a9d9ee;
  border-radius: 12px;
  background: #f4fbff;
  color: #075f88;
  font-size: .9rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.my-page-upcoming-gear-link:hover,
.my-page-upcoming-gear-link:focus-visible {
  background: #e8f8ff;
  border-color: #68bfe5;
}

.trip-gear-page {
  width: min(1180px, calc(100% - 32px));
  margin: 24px auto 80px;
}
.trip-gear-page > * + * {
  margin-top: 18px;
}
.trip-gear-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
}
.trip-gear-hero h1 {
  margin: 4px 0 8px;
}
.trip-gear-trip-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin: 0;
}
.trip-gear-trip-meta span {
  color: #52647a;
}
.trip-gear-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.trip-gear-hero-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 12px;
  text-decoration: none;
  font-weight: 800;
}

.trip-gear-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.trip-gear-summary-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 4px 12px;
  padding: 18px 20px;
}
.trip-gear-summary-card > span {
  font-weight: 800;
}
.trip-gear-summary-card strong {
  font-size: 1.65rem;
  color: #0878ad;
}
.trip-gear-summary-card small {
  grid-column: 1 / -1;
  color: #68778b;
}
.trip-gear-summary-card.is-used strong {
  color: #168358;
}

.trip-gear-editor,
.trip-gear-history,
.trip-gear-empty {
  padding: 22px;
}
.trip-gear-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}
.trip-gear-section-heading h2 {
  margin: 3px 0 0;
}
.trip-gear-section-heading > small {
  color: #68778b;
  text-align: right;
}
.trip-gear-step {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #e7f6fd;
  color: #0878ad;
  font-weight: 900;
  font-size: .82rem;
}
.trip-gear-step.is-used {
  background: #e9f9ef;
  color: #187a52;
}
.trip-gear-step.is-history {
  background: #f0f2f6;
  color: #536277;
}

.trip-gear-form {
  display: grid;
  gap: 18px;
}
.trip-gear-category {
  min-width: 0;
  margin: 0;
  padding: 12px;
  border: 1px solid #d7e2ec;
  border-radius: 14px;
}
.trip-gear-category legend {
  padding: 0 8px;
  font-weight: 900;
  color: #16334c;
}
.trip-gear-choice-list {
  display: grid;
  gap: 8px;
}
.trip-gear-choice {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #dbe4ec;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}
.trip-gear-choice:has(input[type="checkbox"]:checked) {
  border-color: #55b8e1;
  background: #f1fbff;
  box-shadow: inset 3px 0 0 #2aa2d5;
}
.trip-gear-choice.is-history {
  background: #f7f8fa;
}
.trip-gear-choice > input[type="checkbox"] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px;
  margin: 0;
  accent-color: #0782b8;
}
.trip-gear-choice-main {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.trip-gear-choice-main strong {
  overflow-wrap: anywhere;
}
.trip-gear-choice-main small {
  color: #596b80;
}
.trip-gear-choice-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  color: #596b80;
  font-size: .88rem;
}
.trip-gear-choice-meta em {
  padding: 1px 6px;
  border-radius: 999px;
  background: #f4f0e7;
  color: #805d18;
  font-size: .78rem;
  font-style: normal;
  font-weight: 700;
}
.trip-gear-qty {
  display: grid;
  grid-template-columns: auto 64px;
  align-items: center;
  gap: 6px;
  font-size: .8rem;
  color: #667589;
}
.trip-gear-qty input {
  width: 64px;
  min-width: 0;
  padding: 7px 6px;
  text-align: center;
}
.trip-gear-save-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}
.trip-gear-save-row button {
  min-height: 42px;
}
.trip-gear-save-row small {
  color: #667589;
}
.trip-gear-editor.is-locked {
  background: #fafbfc;
}
.trip-gear-locked-message {
  padding: 14px 16px;
  border: 1px dashed #c5d0db;
  border-radius: 12px;
  background: #fff;
}
.trip-gear-locked-message p {
  margin-bottom: 0;
}

.trip-gear-history-group + .trip-gear-history-group,
.trip-gear-planned-history {
  margin-top: 16px;
}
.trip-gear-history-group h3 {
  margin: 0 0 10px;
}
.trip-gear-history-list {
  display: grid;
  gap: 6px;
}
.trip-gear-history-row {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid #e0e7ee;
  border-radius: 10px;
  background: #fff;
}
.trip-gear-history-category {
  color: #52647a;
  font-size: .86rem;
  font-weight: 800;
}
.trip-gear-history-name {
  display: grid;
  min-width: 0;
  gap: 2px;
}
.trip-gear-history-name strong,
.trip-gear-history-name small {
  overflow-wrap: anywhere;
}
.trip-gear-history-name small {
  color: #5d6d80;
}
.trip-gear-history-qty {
  font-weight: 900;
  white-space: nowrap;
}
.trip-gear-planned-history > summary {
  cursor: pointer;
  font-weight: 900;
  color: #075f88;
  margin-bottom: 10px;
}

@media (max-width: 760px) {
  .my-page-upcoming-rsvp-row-wrap {
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
  }
  .my-page-upcoming-gear-link {
    justify-self: start;
    min-width: 0;
    min-height: 34px;
    padding: 5px 10px;
  }

  .trip-gear-page {
    width: min(100%, calc(100% - 16px));
    margin-top: 12px;
  }
  .trip-gear-hero {
    display: grid;
    gap: 14px;
    padding: 18px;
  }
  .trip-gear-hero-actions {
    justify-content: flex-start;
  }
  .trip-gear-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .trip-gear-summary-card {
    padding: 14px;
  }
  .trip-gear-summary-card strong {
    font-size: 1.35rem;
  }
  .trip-gear-editor,
  .trip-gear-history,
  .trip-gear-empty {
    padding: 16px;
  }
  .trip-gear-section-heading {
    display: grid;
    gap: 4px;
  }
  .trip-gear-section-heading > small {
    text-align: left;
  }
  .trip-gear-category {
    padding: 8px;
  }
  .trip-gear-choice {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px;
    padding: 10px;
  }
  .trip-gear-qty {
    grid-column: 2;
    justify-self: start;
  }
  .trip-gear-history-row {
    grid-template-columns: 74px minmax(0, 1fr) auto;
    gap: 8px;
  }
}

@media (max-width: 460px) {
  .trip-gear-summary-grid {
    grid-template-columns: 1fr;
  }
  .trip-gear-hero-actions a {
    flex: 1 1 auto;
  }
  .trip-gear-history-row {
    grid-template-columns: 1fr auto;
  }
  .trip-gear-history-category {
    grid-column: 1 / -1;
  }
}

@media (max-width: 560px) {
  .trip-personal-gear-entry {
    align-items: stretch;
    flex-direction: column;
  }
  .trip-personal-gear-entry .button-link {
    align-self: flex-start;
  }
}
/* ===== END KMA CSS SOURCE: style-162r29.css ===== */

/* ===== KMA CSS SOURCE 060/101: style-162r30.css ===== */
/* KMA FISHING CLUB 1.62r30
   Home / Trip Detail Navigation Cleanup.
   PROGRAM-only: direct detail navigation, compact personal prep entry,
   RSVP dialogs, and trip-preparation personal note relocation. */

.home-trip-title-link {
  color: inherit;
  text-decoration: none;
}
.home-trip-title-link:hover,
.home-trip-title-link:focus-visible {
  color: var(--blue);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-trip-brief-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 7px;
}

.trip-detail-page-heading {
  margin-bottom: 12px;
}

.trip-details-page {
  margin-top: 4px;
}

button.trip-compact-action {
  appearance: none;
  -webkit-appearance: none;
  font-family: inherit;
  cursor: pointer;
}

.trip-compact-action.is-detail {
  background: #fff;
  border-color: #73cfff;
  color: #036a9e;
}

.trip-personal-prep-link {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid #bae6fd;
  border-radius: 12px;
  background: #f6fbfe;
  color: var(--ink);
  text-decoration: none;
}

.trip-personal-prep-link:hover,
.trip-personal-prep-link:focus-visible {
  border-color: #38bdf8;
  background: #effaff;
}

.trip-personal-prep-icon {
  font-size: 1.15rem;
  line-height: 1;
}

.trip-personal-prep-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.trip-personal-prep-copy strong {
  color: var(--navy);
}

.trip-personal-prep-copy small {
  color: #607186;
  font-size: .78rem;
  line-height: 1.4;
}

.trip-personal-prep-action {
  color: #036a9e;
  font-size: .78rem;
  font-weight: 900;
  white-space: nowrap;
}

.rsvp-create-dialog {
  width: min(620px, calc(100% - 28px));
}

.trip-gear-trip-title {
  margin: 5px 0 4px;
  color: var(--navy);
  font-size: 1.08rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.trip-gear-summary-grid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

.trip-gear-summary-card.is-note {
  border-color: #d8d4fe;
  background: #faf9ff;
}

.trip-gear-summary-card.is-note strong {
  color: #5b4bb7;
  font-size: 1.18rem;
}

.trip-prep-note-card {
  margin-bottom: 14px;
}

.trip-prep-note-heading {
  margin-bottom: 8px;
}

.trip-gear-step.is-note {
  color: #5b4bb7;
  background: #eeecff;
}

.trip-prep-note-form {
  display: grid;
  gap: 12px;
}

.trip-prep-note-form textarea {
  width: 100%;
  box-sizing: border-box;
}

@media (max-width: 680px) {
  .home-trip-brief-actions {
    grid-column: 2;
    justify-content: flex-start;
  }

  .home-trip-brief-actions .home-trip-brief-action {
    grid-column: auto;
  }

  .trip-personal-prep-link {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .trip-personal-prep-action {
    grid-column: 2;
    justify-self: start;
  }

  .rsvp-create-dialog {
    width: calc(100% - 20px);
    max-height: calc(100dvh - 20px);
  }
}

@media (max-width: 420px) {
  .home-trip-brief-actions {
    width: 100%;
  }

  .home-trip-brief-actions .home-trip-brief-action {
    flex: 1 1 auto;
    justify-content: center;
  }

  .trip-personal-prep-link {
    padding: 11px 12px;
  }

  .trip-personal-prep-copy small {
    font-size: .74rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r30.css ===== */

/* ===== KMA CSS SOURCE 061/101: style-162r31.css ===== */
/* KMA FISHING CLUB 1.62r31
   My Page / Personal Trip Hub.
   PROGRAM-only: make My Page the primary entrance for CLUB trip preparation
   and place the secondary trip-detail preparation link after trip photos. */

.my-page-trip-purpose-item small {
  overflow-wrap: anywhere;
}

.my-page-trip-hub-card {
  border-color: #b8ddf0;
  background:
    linear-gradient(180deg, rgba(240, 249, 255, .72), rgba(255, 255, 255, 0) 140px),
    #fff;
}

.my-page-trip-hub-heading {
  align-items: flex-start;
}

.my-page-trip-hub-kicker {
  display: inline-block;
  margin-bottom: 3px;
  color: #557085;
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .11em;
}

.my-page-trip-hub-section {
  margin-top: 16px;
}

.my-page-trip-hub-section + .my-page-trip-hub-section {
  padding-top: 16px;
  border-top: 1px solid #e3edf3;
}

.my-page-trip-hub-subheading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.my-page-trip-hub-subheading h3 {
  margin: 0;
  color: var(--navy);
  font-size: 1rem;
}

.my-page-trip-hub-subheading small {
  display: block;
  margin-top: 2px;
  color: #64748b;
  font-size: .76rem;
  line-height: 1.45;
}

.my-page-trip-hub-list {
  display: grid;
  gap: 9px;
}

.my-page-trip-hub-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px 14px;
  align-items: center;
  padding: 12px 13px;
  border: 1px solid #d7e6ee;
  border-radius: 13px;
  background: #fff;
}

.my-page-trip-hub-item.is-unanswered {
  border-color: #fed7aa;
  background: #fffdf8;
}

.my-page-trip-hub-item.is-history {
  background: #fbfdff;
}

.my-page-trip-hub-main {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.my-page-trip-hub-date {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.my-page-trip-hub-date time {
  color: #36556b;
  font-size: .8rem;
  font-weight: 850;
}

.my-page-trip-hub-title {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.my-page-trip-hub-title strong {
  min-width: 0;
  color: #0c3856;
  font-size: .98rem;
  overflow-wrap: anywhere;
}

.my-page-trip-hub-title small {
  color: #64748b;
  font-size: .76rem;
  overflow-wrap: anywhere;
}

.my-page-trip-hub-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 8px;
}

.my-page-trip-hub-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eef8fd;
  color: #35647d;
  font-size: .72rem;
  font-weight: 800;
}

.my-page-trip-hub-meta span.is-empty {
  background: #f3f4f6;
  color: #64748b;
}

.my-page-trip-hub-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}

.my-page-trip-hub-actions .button-link {
  min-height: 38px;
  padding: 7px 11px;
  white-space: nowrap;
}

.my-page-trip-hub-actions .is-attention {
  border-color: #f2b46b;
  background: #fff8ed;
  color: #984c0c;
}

.my-page-trip-prep-action {
  background: #087bad;
}

.my-page-trip-hub-empty {
  display: grid;
  gap: 3px;
  padding: 12px 13px;
  border: 1px dashed #cbdde8;
  border-radius: 12px;
  background: #f8fcfe;
}

.my-page-trip-hub-empty strong {
  color: #334155;
}

.my-page-trip-hub-empty span {
  color: #64748b;
  font-size: .8rem;
}

.my-page-personal-trip-bridge {
  margin-top: 18px;
  padding: 13px 14px;
  border: 1px solid #d9d5f4;
  border-radius: 13px;
  background: #fbfaff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.my-page-personal-trip-bridge > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.my-page-personal-trip-bridge strong {
  color: #44378f;
}

.my-page-personal-trip-bridge small {
  color: #6b6880;
  line-height: 1.45;
}

.my-page-personal-trip-bridge .button-link {
  flex: 0 0 auto;
  white-space: nowrap;
}

.trip-personal-prep-link.is-after-photos {
  margin-top: 12px;
  margin-bottom: 12px;
}

.personal-trips-club-prep-bridge {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #b9e0f2;
  border-radius: 11px;
  background: #f5fbfe;
  display: grid;
  gap: 2px;
}

.personal-trips-club-prep-bridge strong {
  color: #0c5277;
}

.personal-trips-club-prep-bridge span {
  color: #607186;
  font-size: .82rem;
  line-height: 1.5;
}

@media (max-width: 860px) {
  .my-page-trip-hub-item {
    grid-template-columns: 1fr;
  }

  .my-page-trip-hub-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 560px) {
  .my-page-trip-hub-card {
    padding-left: 14px;
    padding-right: 14px;
  }

  .my-page-trip-hub-item {
    padding: 10px;
  }

  .my-page-trip-hub-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .my-page-trip-hub-actions .button-link {
    width: 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }

  .my-page-trip-hub-actions .my-page-trip-prep-action {
    grid-column: 1 / -1;
  }

  .my-page-personal-trip-bridge {
    align-items: stretch;
    flex-direction: column;
  }

  .my-page-personal-trip-bridge .button-link {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 380px) {
  .my-page-trip-hub-actions {
    grid-template-columns: 1fr;
  }

  .my-page-trip-hub-actions .my-page-trip-prep-action {
    grid-column: auto;
  }
}
/* ===== END KMA CSS SOURCE: style-162r31.css ===== */

/* ===== KMA CSS SOURCE 062/101: style-162r32.css ===== */
/* KMA FISHING CLUB 1.62r32
   Personal Catch Record Foundation.
   CLUB-trip private catch records + My Page personal aggregate summary. */

.trip-gear-summary-card.is-catch {
  text-decoration: none;
  border-color: #b9e3cb;
  background: #f3fbf6;
  color: inherit;
}

.trip-gear-summary-card.is-catch:hover,
.trip-gear-summary-card.is-catch:focus-visible {
  border-color: #69b78a;
  box-shadow: 0 0 0 2px rgba(38, 132, 84, .08);
}

.trip-catch-card {
  margin-top: 16px;
  border-color: #b9e3cb;
  background:
    linear-gradient(180deg, rgba(240, 253, 244, .68), rgba(255,255,255,0) 180px),
    #fff;
}

.trip-catch-card.is-locked {
  background: #fafcfa;
}

.trip-gear-step.is-catch {
  background: #dcfce7;
  color: #166534;
}

.trip-catch-help {
  margin: 0 0 14px;
  color: #526779;
  font-size: .84rem;
  line-height: 1.6;
}

.trip-catch-help strong {
  display: block;
  margin-top: 5px;
  color: #36564a;
}

.trip-catch-form {
  display: grid;
  gap: 14px;
}

.trip-catch-fieldset {
  min-width: 0;
  margin: 0;
  padding: 13px;
  border: 1px solid #d9e8df;
  border-radius: 13px;
  background: #fff;
}

.trip-catch-fieldset > legend {
  padding: 0 6px;
  color: #143e2d;
  font-weight: 900;
}

.trip-catch-fieldset > legend small {
  margin-left: 6px;
  color: #64748b;
  font-size: .72rem;
  font-weight: 800;
}

.trip-catch-fieldset > p,
.trip-catch-fieldset > small {
  display: block;
  margin: 0 0 10px;
  color: #64748b;
  font-size: .78rem;
  line-height: 1.5;
}

.trip-catch-target-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(140px, .8fr);
  gap: 10px;
  align-items: end;
}

.trip-catch-target-grid label,
.trip-catch-big-row label,
.trip-catch-bycatch-row label {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: #40576a;
  font-size: .76rem;
  font-weight: 850;
}

.trip-catch-target-grid input,
.trip-catch-big-row input,
.trip-catch-bycatch-row input {
  width: 100%;
  min-width: 0;
}

.trip-catch-number-input {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
}

.trip-catch-number-input > span {
  color: #64748b;
  font-size: .76rem;
  font-weight: 850;
}

.trip-catch-big-list,
.trip-catch-bycatch-list {
  display: grid;
  gap: 8px;
}

.trip-catch-big-row,
.trip-catch-bycatch-row {
  display: grid;
  gap: 9px;
  align-items: end;
  padding: 10px;
  border: 1px solid #edf2ef;
  border-radius: 11px;
  background: #fbfdfc;
}

.trip-catch-big-row {
  grid-template-columns: 34px minmax(150px, 1.4fr) minmax(120px, .8fr) minmax(120px, .8fr);
}

.trip-catch-bycatch-row {
  grid-template-columns: 34px minmax(180px, 1fr) minmax(130px, .45fr);
}

.trip-catch-slot {
  align-self: center;
  justify-self: center;
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #e8f6ed;
  color: #246642;
  font-size: .78rem;
  font-weight: 900;
}

.trip-catch-current-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.trip-catch-current-summary span {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  min-height: 30px;
  padding: 5px 9px;
  border-radius: 999px;
  background: #eef8f2;
  color: #416252;
  font-size: .76rem;
}

.trip-catch-current-summary strong {
  color: #174d33;
}

.my-page-catch-overview {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #cfe5d8;
  border-radius: 14px;
  background: #f8fcf9;
}

.my-page-catch-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.my-page-catch-stats > div {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #dcebe2;
  border-radius: 11px;
  background: #fff;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 3px;
}

.my-page-catch-stats span {
  width: 100%;
  color: #5f7280;
  font-size: .7rem;
  font-weight: 850;
}

.my-page-catch-stats strong {
  color: #174d33;
  font-size: 1.35rem;
  line-height: 1;
}

.my-page-catch-stats small {
  color: #64748b;
  font-size: .72rem;
  font-weight: 800;
}

.my-page-catch-species-details {
  margin-top: 10px;
  border-top: 1px solid #dcebe2;
  padding-top: 10px;
}

.my-page-catch-species-details > summary {
  cursor: pointer;
  color: #17613d;
  font-size: .82rem;
  font-weight: 900;
}

.my-page-catch-species-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  margin-top: 9px;
}

.my-page-catch-species-list > div {
  min-width: 0;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 9px;
  border-radius: 9px;
  background: #fff;
  color: #476052;
  font-size: .76rem;
}

.my-page-catch-species-list span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.my-page-catch-species-list strong {
  flex: 0 0 auto;
  color: #174d33;
}

.my-page-catch-empty {
  margin: 10px 0 0;
  color: #64748b;
  font-size: .78rem;
}

.my-page-trip-hub-meta span.is-catch {
  background: #edf9f1;
  color: #28704a;
}

@media (max-width: 780px) {
  .trip-catch-big-row {
    grid-template-columns: 32px minmax(0, 1fr) minmax(100px, .7fr) minmax(100px, .7fr);
  }

  .my-page-catch-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .my-page-catch-species-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .trip-catch-target-grid,
  .trip-catch-big-row,
  .trip-catch-bycatch-row {
    grid-template-columns: 1fr;
  }

  .trip-catch-slot {
    justify-self: start;
  }

  .trip-catch-big-row label,
  .trip-catch-bycatch-row label {
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
  }

  .trip-catch-number-input {
    min-width: 0;
  }

  .my-page-catch-overview {
    padding: 11px;
  }

  .my-page-catch-species-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 380px) {
  .my-page-catch-stats {
    grid-template-columns: 1fr;
  }
}
/* ===== END KMA CSS SOURCE: style-162r32.css ===== */

/* ===== KMA CSS SOURCE 063/101: style-162r34.css ===== */

/* KMA FISHING CLUB 1.62r34 — unified target-fish search / fish-book links */

.trip-target-editor {
  margin: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafc;
}

.trip-target-editor legend {
  padding: 0 6px;
  color: var(--navy);
  font-weight: 900;
}

.trip-target-editor-help,
.trip-target-new-help {
  margin: 2px 0 10px;
  color: var(--muted);
  font-size: .84rem;
}

.trip-target-editor-rows {
  display: grid;
  gap: 10px;
}

.trip-target-editor-row {
  padding: 11px;
  border: 1px solid #dbe6ed;
  border-radius: 10px;
  background: #fff;
}

.trip-target-editor-row[hidden] {
  display: none !important;
}

.trip-target-editor-row-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 7px;
}

.trip-target-editor-row-head strong {
  color: var(--navy);
  font-size: .9rem;
}

.required-mark,
.relay-mark {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: .68rem;
  vertical-align: middle;
}

.required-mark {
  color: #991b1b;
  background: #fee2e2;
}

.relay-mark {
  color: #475569;
  background: #eef2f7;
}

.trip-target-remove {
  padding: 4px 8px;
  border: 0;
  background: transparent;
  color: #64748b;
  font-weight: 800;
  cursor: pointer;
}

.trip-target-search-wrap {
  position: relative;
}

.trip-target-search {
  width: 100%;
}

.trip-target-suggestions {
  position: absolute;
  z-index: 30;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  max-height: 280px;
  overflow-y: auto;
  padding: 4px;
  border: 1px solid #bae6fd;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 28px #0f385428;
}

.trip-target-suggestion {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.trip-target-suggestion:hover,
.trip-target-suggestion:focus-visible {
  background: #f0f9ff;
}

.trip-target-suggestion + .trip-target-suggestion {
  margin-top: 2px;
}

.trip-target-suggestion-name {
  min-width: 0;
  font-weight: 850;
}

.trip-target-suggestion small {
  flex: none;
  color: var(--muted);
  font-size: .72rem;
}

.trip-target-suggestion-new {
  border-top: 1px solid var(--line);
  color: #075985;
}

.trip-target-selection-status {
  min-height: 24px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 7px;
  color: var(--muted);
  font-size: .78rem;
}

.trip-target-selection-status:empty {
  min-height: 0;
  margin-top: 0;
}

.trip-target-selection-status a {
  font-weight: 800;
}

.trip-target-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 900;
}

.trip-target-status-badge.is-linked {
  color: #075985;
  background: #e0f2fe;
}

.trip-target-status-badge.is-club {
  color: #365314;
  background: #ecfccb;
}

.trip-target-status-badge.is-unresolved {
  color: #92400e;
  background: #fef3c7;
}

.trip-target-editor-actions {
  display: flex;
  justify-content: flex-start;
  margin-top: 10px;
}

.trip-target-editor-actions button[hidden] {
  display: none !important;
}

.trip-organizer-target-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px 14px;
  margin-top: 7px;
}

.trip-organizer-target-row .trip-organizer-badge,
.trip-organizer-target-row .trip-target-badge {
  margin: 0;
}

.trip-target-badge {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
  color: #475569;
  font-size: .88rem;
  font-weight: 700;
}

.trip-target-fish-list {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.fish-species-link,
.fish-species-label {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  max-width: 100%;
  padding: 3px 8px;
  border-radius: 999px;
  line-height: 1.25;
  font-size: .8rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.fish-species-link {
  color: #075985;
  background: #e0f2fe;
  border: 1px solid #bae6fd;
  text-decoration: none;
}

.fish-species-link:hover,
.fish-species-link:focus-visible {
  text-decoration: underline;
}

.fish-species-label {
  color: #475569;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
}

.fish-species-label.is-club-only {
  color: #365314;
  background: #f7fee7;
  border-color: #d9f99d;
}

.fish-species-label.is-unresolved {
  color: #92400e;
  background: #fffbeb;
  border-color: #fde68a;
}

.fish-species-label.is-empty {
  font-weight: 700;
}

.fish-species-label small {
  margin-left: 2px;
  font-size: .62rem;
  font-weight: 800;
  opacity: .8;
}

.fish-species-link.is-compact,
.home-previous-targets .fish-species-label {
  padding: 2px 6px;
  font-size: .74rem;
}

.home-previous-targets {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}

.home-next-trip-fact .trip-target-fish-list {
  justify-content: flex-start;
}

@media (max-width: 640px) {
  .trip-target-editor {
    padding: 12px;
  }

  .trip-target-suggestion {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
  }

  .trip-organizer-target-row {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
  }

  .trip-target-badge {
    width: 100%;
  }

  .trip-target-fish-list {
    max-width: 100%;
  }

  .fish-species-link,
  .fish-species-label {
    white-space: normal;
  }
}
/* ===== END KMA CSS SOURCE: style-162r34.css ===== */

/* ===== KMA CSS SOURCE 064/101: style-162r35.css ===== */
/* KMA FISHING CLUB 1.62r35
   RSVP joint-name display stabilization.
   The attendee name is always the primary information and must never be
   squeezed out by the save badge, count badges, or action buttons. */

.response-name-stack {
  min-width: 0;
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: .22rem;
}

.response-display-name {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: visible !important;
  text-overflow: clip !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  word-break: normal;
  color: inherit;
  font-size: .98rem;
  font-weight: 900;
  line-height: 1.36;
}

.response-name-stack .response-counts {
  display: flex !important;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: .28rem;
  white-space: normal !important;
}

.response-name-stack .rsvp-save-confirmation {
  flex: 0 0 auto;
  max-width: 100%;
  white-space: normal;
}

@media (max-width: 760px) {
  .response-primary-line {
    grid-template-columns: auto minmax(0, 1fr) !important;
    grid-template-areas:
      "status name"
      "actions actions" !important;
    align-items: start !important;
  }

  .response-primary-line > .status {
    grid-area: status;
  }

  .response-name-stack {
    grid-area: name;
  }

  .response-primary-line .response-actions {
    grid-area: actions;
    justify-self: end;
    margin-top: .18rem !important;
  }
}
/* ===== END KMA CSS SOURCE: style-162r35.css ===== */

/* ===== KMA CSS SOURCE 065/101: style-162r36.css ===== */
/* KMA FISHING CLUB 1.62r36 — Personal Catch v2 / Location / Angler */

.trip-catch-location-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .7fr);
  gap: 12px;
  align-items: end;
  margin: 12px 0 14px;
  padding: 13px 14px;
  border: 1px solid #cde5d7;
  border-radius: 13px;
  background: #f6fbf8;
}

.trip-catch-location-card > div {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.trip-catch-location-label {
  color: #527061;
  font-size: .74rem;
  font-weight: 900;
}

.trip-catch-location-card strong {
  color: #173f2f;
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.trip-catch-location-card small,
.trip-catch-admin-location small {
  color: #64748b;
  font-size: .72rem;
  line-height: 1.45;
}

.trip-catch-location-card.is-admin-overridden {
  border-color: #e6cf9a;
  background: #fffaf0;
}

.trip-catch-admin-location {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: #6f531e;
  font-size: .74rem;
  font-weight: 900;
}

.trip-catch-admin-location input {
  width: 100%;
  min-width: 0;
}

.trip-catch-target-v2-list,
.trip-catch-big-list,
.trip-catch-bycatch-list {
  display: grid;
  gap: 9px;
}

.trip-catch-target-v2-row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) minmax(130px, .38fr);
  gap: 10px;
  align-items: center;
  padding: 10px;
  border: 1px solid #e3eee7;
  border-radius: 11px;
  background: #fbfdfc;
}

.trip-catch-target-v2-name {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.trip-catch-target-v2-name a,
.trip-catch-target-v2-name strong {
  color: #164e3a;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.trip-catch-target-v2-name small {
  color: #718096;
  font-size: .7rem;
}

.trip-catch-target-v2-row > label,
.trip-catch-big-row-v2 > label,
.trip-catch-bycatch-row-v2 > label,
.trip-catch-fish-search label {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: #40576a;
  font-size: .76rem;
  font-weight: 850;
}

.trip-catch-target-v2-row input,
.trip-catch-big-row-v2 input,
.trip-catch-big-row-v2 select,
.trip-catch-bycatch-row-v2 input {
  width: 100%;
  min-width: 0;
}

.trip-catch-big-row-v2,
.trip-catch-bycatch-row-v2 {
  display: grid;
  gap: 9px;
  align-items: end;
  padding: 10px;
  border: 1px solid #edf2ef;
  border-radius: 11px;
  background: #fbfdfc;
}

.trip-catch-big-row-v2 {
  grid-template-columns:
    34px
    minmax(180px, 1.35fr)
    minmax(150px, .9fr)
    minmax(110px, .55fr)
    minmax(110px, .55fr);
}

.trip-catch-bycatch-row-v2 {
  grid-template-columns: 34px minmax(200px, 1fr) minmax(120px, .38fr);
}

.trip-catch-angler select {
  min-height: 42px;
}

.trip-catch-angler small {
  color: #718096;
  font-size: .68rem;
  line-height: 1.35;
}

.trip-catch-fish-search {
  position: relative;
  min-width: 0;
}

.trip-catch-fish-suggestions {
  position: absolute;
  z-index: 50;
  left: 0;
  right: 0;
  top: calc(100% - 2px);
  max-height: 260px;
  overflow-y: auto;
  padding: 5px;
  border: 1px solid #bcd8ca;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 26px rgba(15, 51, 38, .14);
}

.trip-catch-fish-suggestion {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 40px;
  padding: 8px 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #123c2c;
  text-align: left;
  cursor: pointer;
}

.trip-catch-fish-suggestion:hover,
.trip-catch-fish-suggestion:focus-visible {
  background: #eef8f2;
}

.trip-catch-fish-suggestion-new {
  border-top: 1px solid #e5ece8;
  border-radius: 0 0 8px 8px;
  color: #7a4b10;
}

.trip-catch-fish-suggestion-name {
  min-width: 0;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.trip-catch-fish-suggestion small {
  color: #718096;
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
}

.trip-catch-fish-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-height: 20px;
  margin-top: 4px;
  color: #64748b;
  font-size: .68rem;
}

.trip-catch-fish-status a {
  font-weight: 850;
}

.trip-catch-fish-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 900;
}

.trip-catch-fish-badge.is-linked {
  background: #e5f6ed;
  color: #1d6642;
}

.trip-catch-fish-badge.is-club {
  background: #eef2f7;
  color: #53657a;
}

.trip-catch-warning {
  padding: 10px 11px;
  border: 1px solid #f0d4a4;
  border-radius: 10px;
  background: #fff8e8;
  color: #79551c;
  font-weight: 850;
}

@media (max-width: 1100px) {
  .trip-catch-big-row-v2 {
    grid-template-columns: 34px minmax(180px, 1fr) minmax(150px, .8fr);
  }

  .trip-catch-big-row-v2 > label:nth-last-child(-n+2) {
    min-width: 0;
  }
}

@media (max-width: 760px) {
  .trip-catch-location-card {
    grid-template-columns: 1fr;
  }

  .trip-catch-big-row-v2,
  .trip-catch-bycatch-row-v2,
  .trip-catch-target-v2-row {
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: start;
  }

  .trip-catch-big-row-v2 > .trip-catch-fish-search,
  .trip-catch-big-row-v2 > label,
  .trip-catch-bycatch-row-v2 > .trip-catch-fish-search,
  .trip-catch-bycatch-row-v2 > label,
  .trip-catch-target-v2-row > label {
    grid-column: 2;
  }

  .trip-catch-target-v2-name {
    grid-column: 2;
  }

  .trip-catch-slot {
    grid-row: 1 / span 5;
    align-self: start;
    margin-top: 4px;
  }
}

@media (max-width: 480px) {
  .trip-catch-big-row-v2,
  .trip-catch-bycatch-row-v2,
  .trip-catch-target-v2-row {
    grid-template-columns: 1fr;
  }

  .trip-catch-big-row-v2 > .trip-catch-fish-search,
  .trip-catch-big-row-v2 > label,
  .trip-catch-bycatch-row-v2 > .trip-catch-fish-search,
  .trip-catch-bycatch-row-v2 > label,
  .trip-catch-target-v2-row > label,
  .trip-catch-target-v2-name,
  .trip-catch-slot {
    grid-column: 1;
    grid-row: auto;
  }

  .trip-catch-slot {
    justify-self: start;
  }

  .trip-catch-fish-suggestions {
    position: static;
    max-height: 220px;
    margin-top: 5px;
  }

  .trip-catch-fish-suggestion {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .trip-catch-fish-suggestion small {
    white-space: normal;
  }
}


/* Admin-only management of immutable catch-location snapshots. */
.catch-location-admin-panel {
  margin-top: 28px;
  padding: 20px;
  border: 1px solid var(--line, #d8e7f0);
  border-radius: 18px;
  background: #f8fbfd;
}

.catch-location-admin-heading,
.catch-location-admin-person,
.catch-location-admin-values,
.catch-location-admin-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.catch-location-admin-heading {
  justify-content: space-between;
}

.catch-location-admin-heading h2 {
  margin: 0;
}

.catch-location-admin-help {
  margin: 10px 0 16px;
  color: var(--muted, #5f6f82);
}

.catch-location-admin-list {
  display: grid;
  gap: 14px;
}

.catch-location-admin-item {
  padding: 16px;
  border: 1px solid var(--line, #d8e7f0);
  border-radius: 14px;
  background: #fff;
}

.catch-location-admin-person {
  justify-content: space-between;
}

.catch-location-admin-badge,
.catch-location-auto-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 0.85rem;
  font-weight: 700;
}

.catch-location-admin-badge {
  background: #fff3db;
  color: #8b4d00;
}

.catch-location-auto-badge {
  background: #eaf7ef;
  color: #176b3a;
}

.catch-location-admin-values {
  margin: 10px 0;
  align-items: flex-start;
  flex-direction: column;
}

.catch-location-admin-form label {
  display: grid;
  gap: 6px;
  font-weight: 700;
}

.catch-location-admin-actions {
  justify-content: flex-end;
  margin-top: 10px;
}

@media (max-width: 720px) {
  .catch-location-admin-panel {
    padding: 14px;
  }

  .catch-location-admin-actions > * {
    flex: 1 1 auto;
  }
}
/* ===== END KMA CSS SOURCE: style-162r36.css ===== */

/* ===== KMA CSS SOURCE 066/101: style-162r38.css ===== */

/* 1.62r38: CLUB-only fish species -> GAME candidate export */
.fish-game-export-heading {
  align-items: flex-start;
  gap: 18px;
}

.fish-game-export-guide,
.fish-game-export-card {
  margin-top: 18px;
}

.fish-game-export-scope {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.fish-game-export-scope > div {
  border: 1px solid #dbe8f1;
  border-radius: 14px;
  padding: 14px 16px;
  background: #f8fbfd;
}

.fish-game-export-scope strong {
  display: block;
  margin-bottom: 6px;
}

.fish-game-export-scope p {
  margin: 0;
}

.fish-game-export-list {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}

.fish-game-export-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-width: 0;
  border: 1px solid #dbe8f1;
  border-radius: 14px;
  padding: 12px 14px;
  background: #fff;
  cursor: pointer;
}

.fish-game-export-row input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin: 0;
}

.fish-game-export-copy {
  min-width: 0;
}

.fish-game-export-copy strong,
.fish-game-export-copy small {
  display: block;
  overflow-wrap: anywhere;
}

.fish-game-export-copy small {
  margin-top: 3px;
  color: #617184;
}

.fish-game-export-state {
  white-space: nowrap;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 0.82rem;
  font-weight: 700;
  background: #fff3d4;
  color: #8a5400;
}

.fish-game-export-state.is-exported {
  background: #e7f6ec;
  color: #21683b;
}

.fish-game-export-actions {
  align-items: center;
  margin-top: 14px;
}

.admin-tool-card.is-attention {
  border-color: #f2c66d;
  background: #fffaf0;
}

@media (max-width: 720px) {
  .fish-game-export-scope {
    grid-template-columns: 1fr;
  }

  .fish-game-export-row {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .fish-game-export-state {
    grid-column: 2;
    justify-self: start;
  }

  .fish-game-export-actions {
    align-items: stretch;
  }
}
/* ===== END KMA CSS SOURCE: style-162r38.css ===== */

/* ===== KMA CSS SOURCE 067/101: style-162r39.css ===== */
/* KMA FISHING CLUB 1.62r39
   Separate Trip Record / Catch entry points while preserving one record page. */

.home-personal-record-links {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 12px;
}

.trip-personal-record-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}

.trip-personal-record-link {
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #bae6fd;
  border-radius: 12px;
  background: #f6fbfe;
  color: var(--ink);
  text-decoration: none;
}

.trip-personal-record-link.is-catch {
  border-color: #c8e8d4;
  background: #f6fcf8;
}

.trip-personal-record-link:hover,
.trip-personal-record-link:focus-visible {
  border-color: #38bdf8;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, .12);
}

.trip-personal-record-link.is-catch:hover,
.trip-personal-record-link.is-catch:focus-visible {
  border-color: #55b982;
  box-shadow: 0 0 0 3px rgba(85, 185, 130, .12);
}

.trip-record-mode-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 10px;
  scroll-margin-top: 86px;
}

.trip-record-mode-link {
  min-width: 0;
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border: 1px solid #b9e0f2;
  border-radius: 11px;
  background: #f5fbfe;
  color: var(--ink);
  text-decoration: none;
}

.trip-record-mode-link.is-catch {
  border-color: #c8e8d4;
  background: #f6fcf8;
}

.trip-record-mode-link > span:last-child {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.trip-record-mode-link strong {
  color: var(--navy);
}

.trip-record-mode-link small {
  color: #607186;
  font-size: .76rem;
  line-height: 1.35;
}

#catch-record {
  scroll-margin-top: 86px;
}

#trip-record:target {
  outline: 3px solid rgba(56, 189, 248, .16);
  outline-offset: 2px;
}

#catch-record:target {
  outline: 3px solid rgba(85, 185, 130, .16);
  outline-offset: 2px;
}

.my-page-next-trip-shortcuts {
  margin-top: 12px;
  padding: 11px 12px;
  border: 1px solid #b9e0f2;
  border-radius: 12px;
  background: #f7fcfe;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.my-page-next-trip-shortcuts-copy {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.my-page-next-trip-shortcuts-copy span {
  color: #607186;
  font-size: .74rem;
  font-weight: 800;
}

.my-page-next-trip-shortcuts-copy strong {
  color: var(--navy);
  overflow-wrap: anywhere;
}

.my-page-next-trip-shortcuts-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.my-page-next-trip-shortcuts-actions .button-link {
  min-height: 36px;
  padding: 6px 10px;
}

.my-page-next-trip-shortcuts-actions .is-catch-record,
.my-page-trip-catch-action {
  border-color: #82cda2;
  background: #f4fbf6;
  color: #166b43;
}

@media (max-width: 680px) {
  .trip-personal-record-links {
    grid-template-columns: 1fr;
  }

  .trip-personal-record-link {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .trip-personal-record-link .trip-personal-prep-action {
    grid-column: 2;
    justify-self: start;
  }

  .my-page-next-trip-shortcuts {
    align-items: stretch;
    flex-direction: column;
  }

  .my-page-next-trip-shortcuts-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .my-page-next-trip-shortcuts-actions .button-link {
    width: 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }
}

@media (max-width: 560px) {
  .my-page-trip-hub-actions .my-page-trip-prep-action {
    grid-column: auto;
  }

  .trip-record-mode-nav {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .my-page-next-trip-shortcuts-actions {
    grid-template-columns: 1fr;
  }
}
/* ===== END KMA CSS SOURCE: style-162r39.css ===== */

/* ===== KMA CSS SOURCE 068/101: style-162r40.css ===== */
/* KMA FISHING CLUB 1.62r40
   Personal Catch Dashboard / private catch-history overview. */

.my-page-catch-overview-heading {
  align-items: center;
  gap: 12px;
}

.my-page-catch-dashboard-link {
  flex: 0 0 auto;
  min-height: 36px;
}

.trip-catch-dashboard-bridge {
  margin: 10px 0 14px;
  padding: 10px 12px;
  border: 1px solid #c8e8d4;
  border-radius: 11px;
  background: #f6fcf8;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.trip-catch-dashboard-bridge > span {
  min-width: 0;
  color: #526779;
  font-size: .84rem;
  line-height: 1.45;
}

.catch-dashboard-page {
  display: grid;
  gap: 16px;
}

.catch-dashboard-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.catch-dashboard-hero h1,
.catch-dashboard-section-heading h2,
.catch-dashboard-big-column h3,
.catch-dashboard-recent-head h3 {
  margin: 0;
}

.catch-dashboard-hero p {
  max-width: 760px;
  margin: 8px 0 0;
  color: #526779;
  line-height: 1.6;
}

.catch-dashboard-kicker {
  display: inline-block;
  color: #477087;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
}

.catch-dashboard-hero-actions,
.catch-dashboard-recent-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.catch-dashboard-summary,
.catch-dashboard-section {
  min-width: 0;
}

.catch-dashboard-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.catch-dashboard-section-heading > small,
.catch-dashboard-count {
  color: #65778a;
  font-size: .78rem;
}

.catch-dashboard-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 9px;
}

.catch-dashboard-stats > div {
  min-width: 0;
  padding: 12px 10px;
  border: 1px solid #d8e5ec;
  border-radius: 11px;
  background: #f9fcfd;
  display: grid;
  gap: 2px;
  text-align: center;
}

.catch-dashboard-stats span {
  color: #65778a;
  font-size: .74rem;
  font-weight: 800;
}

.catch-dashboard-stats strong {
  color: var(--navy);
  font-size: 1.45rem;
  line-height: 1.1;
}

.catch-dashboard-stats small {
  color: #65778a;
}

.catch-dashboard-source-counts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  margin-top: 10px;
  color: #526779;
  font-size: .84rem;
}

.catch-dashboard-two-column,
.catch-dashboard-big-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.catch-dashboard-list,
.catch-dashboard-big-list,
.catch-dashboard-recent-list {
  display: grid;
  gap: 8px;
}

.catch-dashboard-list-row {
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #dde8ee;
  border-radius: 10px;
  background: #fbfdfe;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.catch-dashboard-list-main {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.catch-dashboard-list-main > strong,
.catch-dashboard-fish-link {
  color: var(--navy);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.catch-dashboard-list-main small {
  color: #65778a;
  line-height: 1.4;
}

.catch-dashboard-total {
  flex: 0 0 auto;
  color: #166b43;
  white-space: nowrap;
}

.catch-dashboard-note,
.catch-dashboard-muted {
  margin: 10px 0 0;
  color: #65778a;
  font-size: .82rem;
  line-height: 1.5;
}

.catch-dashboard-big-column {
  min-width: 0;
}

.catch-dashboard-big-column h3 {
  margin-bottom: 8px;
  color: var(--navy);
  font-size: 1rem;
}

.catch-dashboard-big-column h3 span {
  color: #65778a;
  font-size: .78rem;
}

.catch-dashboard-big-row,
.catch-dashboard-recent-row {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #dde8ee;
  border-radius: 11px;
  background: #fbfdfe;
}

.catch-dashboard-big-column.is-companion .catch-dashboard-big-row {
  background: #fffdf8;
  border-color: #eadfc6;
}

.catch-dashboard-big-title,
.catch-dashboard-recent-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.catch-dashboard-big-title a,
.catch-dashboard-big-title strong {
  color: var(--navy);
  font-weight: 800;
  overflow-wrap: anywhere;
}

.catch-dashboard-source-badge {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #eaf5fb;
  color: #245f7d;
  font-size: .67rem;
  font-weight: 900;
}

.catch-dashboard-source-badge.is-personal {
  background: #eef7ee;
  color: #2d6b42;
}

.catch-dashboard-source-badge.is-archived {
  background: #f1f2f4;
  color: #68717b;
}

.catch-dashboard-big-values {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  margin: 7px 0 5px;
}

.catch-dashboard-big-values span {
  color: #526779;
  font-size: .84rem;
}

.catch-dashboard-big-row > small {
  display: block;
  margin-top: 3px;
  color: #65778a;
  line-height: 1.4;
}

.catch-dashboard-big-row .text-link {
  display: inline-block;
  margin-top: 6px;
}

.catch-dashboard-recent-row {
  display: grid;
  gap: 8px;
}

.catch-dashboard-recent-head > div {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px 8px;
}

.catch-dashboard-recent-head time {
  color: #65778a;
  font-size: .78rem;
}

.catch-dashboard-recent-head h3 {
  flex-basis: 100%;
  color: var(--navy);
  font-size: 1rem;
  overflow-wrap: anywhere;
}

.catch-dashboard-recent-head > strong {
  flex: 0 0 auto;
  color: #166b43;
  font-size: 1.1rem;
}

.catch-dashboard-recent-location {
  color: #526779;
  font-size: .83rem;
}

.catch-dashboard-chip-row,
.catch-dashboard-recent-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.catch-dashboard-chip-row > span,
.catch-dashboard-recent-meta > span {
  padding: 4px 8px;
  border-radius: 999px;
  background: #eef6fb;
  color: #3f6174;
  font-size: .76rem;
}

.catch-dashboard-chip-row.is-bycatch > span {
  background: #f4f4f5;
  color: #5f6670;
}

.catch-dashboard-recent-meta > span {
  background: #f7f1e5;
  color: #6b5a32;
}

.catch-dashboard-empty {
  text-align: center;
}

@media (max-width: 900px) {
  .catch-dashboard-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .catch-dashboard-two-column,
  .catch-dashboard-big-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .my-page-catch-overview-heading,
  .catch-dashboard-hero,
  .trip-catch-dashboard-bridge {
    align-items: stretch;
    flex-direction: column;
  }

  .my-page-catch-dashboard-link,
  .trip-catch-dashboard-bridge .button-link {
    width: 100%;
    justify-content: center;
    text-align: center;
  }

  .catch-dashboard-hero-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .catch-dashboard-hero-actions .button-link {
    width: 100%;
    min-width: 0;
    justify-content: center;
    text-align: center;
  }

  .catch-dashboard-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catch-dashboard-section-heading,
  .catch-dashboard-big-title,
  .catch-dashboard-recent-head {
    align-items: flex-start;
  }
}

@media (max-width: 430px) {
  .catch-dashboard-hero-actions,
  .catch-dashboard-stats {
    grid-template-columns: 1fr;
  }

  .catch-dashboard-list-row {
    align-items: flex-start;
  }

  .catch-dashboard-recent-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .catch-dashboard-recent-actions .button-link {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}
/* ===== END KMA CSS SOURCE: style-162r40.css ===== */

/* ===== KMA CSS SOURCE 069/101: style-162r54.css ===== */
/* KMA FISHING CLUB 1.62r54 — catalog width + line quick-use + catch draft */

/* The legacy shared form-card is capped at 720px.  Official variant search is
   a wide data workflow, same as My Page / Catalog ledger pages. */
.catalog-official-container .gear-web-page {
  width: 100%;
  max-width: none;
  min-width: 0;
}
.catalog-official-container .gear-web-page > .form-card,
.catalog-official-container .gear-web-page > details.form-card {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}
.catalog-official-container .gear-web-hero > .secondary {
  flex: 0 0 auto;
  white-space: nowrap;
}
.catalog-official-container .gear-catalog-candidate-list,
.catalog-official-container .gear-catalog-candidate {
  min-width: 0;
}
.catalog-official-container .gear-catalog-candidate p,
.catalog-official-container .gear-catalog-candidate dd {
  overflow-wrap: anywhere;
}

/* Direct Line Catalog -> owned reel workflow. */
.line-quick-use-page {
  display: grid;
  gap: 1rem;
}
.gear-catalog-container .line-quick-use-page > .form-card {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box;
}
.line-quick-use-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.line-quick-use-hero h1 {
  margin: .25rem 0 .45rem;
}
.line-quick-use-hero p {
  margin: 0;
}
.line-quick-use-specs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
  margin: 0;
}
.line-quick-use-specs > div {
  min-width: 0;
  padding: .65rem .75rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .7rem;
  background: rgba(248, 250, 252, .8);
}
.line-quick-use-specs dt {
  color: #64748b;
  font-size: .74rem;
  font-weight: 800;
}
.line-quick-use-specs dd {
  margin: .2rem 0 0;
  overflow-wrap: anywhere;
}
.line-quick-use-form,
.line-quick-use-confirm {
  display: grid;
  gap: 1rem;
}
.line-quick-reel-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: .7rem;
}
.line-quick-reel-option {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .75rem;
  align-items: start;
  min-width: 0;
  padding: .85rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .8rem;
  background: #fff;
  cursor: pointer;
}
.line-quick-reel-option:has(input:checked) {
  border-color: rgba(3, 105, 161, .55);
  background: rgba(3, 105, 161, .055);
  box-shadow: 0 0 0 2px rgba(3, 105, 161, .08);
}
.line-quick-reel-option input {
  margin-top: .25rem;
}
.line-quick-reel-option > span {
  display: grid;
  gap: .2rem;
  min-width: 0;
}
.line-quick-reel-option strong,
.line-quick-reel-option small,
.line-quick-reel-option em {
  overflow-wrap: anywhere;
}
.line-quick-reel-option em {
  color: #0f766e;
  font-size: .78rem;
  font-style: normal;
}
.line-quick-use-confirm {
  padding-top: 1rem;
  border-top: 1px solid var(--border, #d7dde5);
}
.line-quick-use-confirm textarea {
  width: 100%;
  box-sizing: border-box;
}
.trip-catch-draft-status {
  margin: .55rem 0;
  padding: .6rem .75rem;
  border-radius: .65rem;
  background: rgba(3, 105, 161, .07);
  color: #075985;
  font-size: .84rem;
  font-weight: 700;
}

@media (max-width: 760px) {
  .catalog-official-container .gear-web-hero,
  .line-quick-use-hero {
    display: grid;
    grid-template-columns: 1fr;
  }
  .catalog-official-container .gear-web-hero > .secondary,
  .line-quick-use-hero > .secondary,
  .line-quick-use-actions > * {
    width: 100%;
  }
  .line-quick-use-specs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 430px) {
  .line-quick-use-specs {
    grid-template-columns: 1fr;
  }
}
/* ===== END KMA CSS SOURCE: style-162r54.css ===== */

/* ===== KMA CSS SOURCE 070/101: style-162r55.css ===== */
/* KMA FISHING CLUB 1.62r55 — Gear Database entry / landing foundation */

/* Home: keep the entry intentionally compact. The explanation lives only
   inside the database page. */
.gear-database-home-entry {
  width: 100%;
  min-height: 64px;
  box-sizing: border-box;
  margin: 0 0 14px;
  padding: 12px 16px;
  border: 1px solid #c9dbe5;
  border-radius: 14px;
  background: #f7fbfd;
  color: var(--navy, #12334a);
  text-decoration: none;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  box-shadow: 0 4px 14px rgba(15, 53, 73, .06);
}

.gear-database-home-entry:hover,
.gear-database-home-entry:focus-visible {
  border-color: #8fb9cf;
  background: #eef8fc;
}

.gear-database-home-icon {
  font-size: 1.45rem;
  line-height: 1;
}

.gear-database-home-entry strong {
  min-width: 0;
  font-size: 1.05rem;
  overflow-wrap: anywhere;
}

.gear-database-home-arrow {
  color: #477087;
  font-size: 1.65rem;
  line-height: 1;
}

/* Landing */
.gear-database-page {
  display: grid;
  gap: 16px;
}

.gear-database-container .gear-database-page > .form-card,
.gear-database-container .gear-database-page > .gear-database-section {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin-left: 0;
  margin-right: 0;
}

.gear-database-hero h1 {
  margin: .22rem 0 .6rem;
}

.gear-database-hero > p:not(.eyebrow) {
  max-width: 920px;
  margin: .35rem 0 0;
  line-height: 1.65;
}

.gear-database-separation-note {
  color: #526779;
  font-size: .9rem;
}

.gear-database-section {
  padding: 18px;
  border: 1px solid #d8e5ec;
  border-radius: 14px;
  background: #fff;
}

.gear-database-section-heading {
  margin-bottom: 12px;
}

.gear-database-section-heading h2 {
  margin: 0;
  color: var(--navy, #12334a);
  font-size: 1.08rem;
}

.gear-database-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.gear-database-category-card {
  position: relative;
  min-width: 0;
  min-height: 112px;
  padding: 15px 42px 15px 15px;
  border: 1px solid #d8e5ec;
  border-radius: 12px;
  background: #fbfdfe;
  color: inherit;
  text-decoration: none;
  display: grid;
  align-content: center;
  gap: 5px;
}

.gear-database-category-card:hover,
.gear-database-category-card:focus-visible {
  border-color: #8fb9cf;
  background: #f2f9fc;
}

.gear-database-category-name {
  color: var(--navy, #12334a);
  font-size: 1.02rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.gear-database-category-detail {
  color: #607486;
  font-size: .82rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.gear-database-category-arrow {
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  color: #477087;
  font-size: 1.55rem;
  line-height: 1;
}

.gear-database-footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

@media (max-width: 820px) {
  .gear-database-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .gear-database-home-entry {
    min-height: 58px;
    padding: 10px 13px;
  }

  .gear-database-grid {
    grid-template-columns: 1fr;
  }

  .gear-database-category-card {
    min-height: 84px;
  }

  .gear-database-footer-actions > * {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r55.css ===== */

/* ===== KMA CSS SOURCE 071/101: style-162r56.css ===== */
/* KMA FISHING CLUB 1.62r56 — six-category Gear Database management */

.gear-database-category-page {
  gap: 14px;
}

.gear-database-category-status {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.gear-database-category-count-card {
  min-width: 180px;
  padding: 14px 18px;
  border: 1px solid #d8e5ec;
  border-radius: 12px;
  background: #fff;
  display: grid;
  gap: 2px;
}

.gear-database-category-count-card strong {
  color: var(--navy, #12334a);
  font-size: 1.45rem;
  line-height: 1.1;
}

.gear-database-category-count-card span {
  color: #607486;
  font-size: .84rem;
}

.gear-database-action-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.gear-database-action-card {
  position: relative;
  min-width: 0;
  min-height: 112px;
  padding: 16px 42px 16px 16px;
  border: 1px solid #d8e5ec;
  border-radius: 12px;
  background: #fbfdfe;
  color: inherit;
  text-decoration: none;
  display: grid;
  align-content: center;
  gap: 6px;
}

.gear-database-action-card:hover,
.gear-database-action-card:focus-visible {
  border-color: #8fb9cf;
  background: #f2f9fc;
}

.gear-database-action-title {
  color: var(--navy, #12334a);
  font-size: 1rem;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.gear-database-action-detail {
  color: #607486;
  font-size: .82rem;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.gear-database-readonly-note {
  margin-top: 14px;
}

.gear-database-fixed-category {
  margin: 0 0 14px;
  padding: 11px 13px;
  border: 1px solid #d8e5ec;
  border-radius: 10px;
  background: #f7fbfd;
}

@media (max-width: 820px) {
  .gear-database-action-grid {
    grid-template-columns: 1fr;
  }

  .gear-database-action-card {
    min-height: 86px;
  }
}

@media (max-width: 520px) {
  .gear-database-category-status {
    display: block;
  }

  .gear-database-category-count-card {
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
  }
}
/* ===== END KMA CSS SOURCE: style-162r56.css ===== */

/* ===== KMA CSS SOURCE 072/101: style-162r61.css ===== */

/* 1.62r61 - Catalog Import usability refresh
   JSON upload first, compact candidate rows, sticky bulk actions,
   collapsed ChatGPT prompt editor. */

.catalog-import-r61 {
  --catalog-import-border: rgba(71, 85, 105, 0.22);
  --catalog-import-soft: #f8fafc;
  --catalog-import-muted: #64748b;
  --catalog-import-strong: #0f172a;
}

.catalog-import-hero p {
  max-width: 860px;
}

.catalog-import-upload-card {
  border-width: 2px;
}

.catalog-import-upload-card .gear-catalog-category-heading {
  align-items: flex-start;
  gap: 1rem;
}

.catalog-import-scope-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2rem;
  padding: 0.3rem 0.7rem;
  border: 1px solid var(--catalog-import-border);
  border-radius: 999px;
  background: var(--catalog-import-soft);
  color: #334155;
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.catalog-import-upload-form {
  gap: 0.85rem;
}

.catalog-import-drop-zone {
  display: grid;
  place-items: center;
  gap: 0.45rem;
  min-height: 190px;
  width: 100%;
  padding: 1.25rem;
  border: 2px dashed #94a3b8;
  border-radius: 16px;
  background: #f8fafc;
  text-align: center;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease, transform .15s ease;
  box-sizing: border-box;
}

.catalog-import-drop-zone:hover,
.catalog-import-drop-zone:focus-within,
.catalog-import-drop-zone.is-dragover {
  border-color: #2563eb;
  background: #eff6ff;
}

.catalog-import-drop-zone.is-dragover {
  transform: translateY(-1px);
}

.catalog-import-drop-icon {
  display: inline-grid;
  place-items: center;
  min-width: 3.7rem;
  min-height: 2.2rem;
  padding: 0.25rem 0.55rem;
  border-radius: 9px;
  background: #e2e8f0;
  color: #334155;
  font-size: 0.8rem;
  font-weight: 900;
  letter-spacing: .08em;
}

.catalog-import-drop-zone strong {
  font-size: 1.12rem;
  color: var(--catalog-import-strong);
}

.catalog-import-drop-zone > span:not(.catalog-import-drop-icon):not(.catalog-import-file-name) {
  color: var(--catalog-import-muted);
}

.catalog-import-drop-zone input[type="file"] {
  width: min(100%, 560px);
  padding: 0.65rem;
  border: 1px solid var(--catalog-import-border);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}

.catalog-import-file-name {
  display: block;
  max-width: 100%;
  color: #334155;
  font-size: 0.86rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.catalog-import-upload-actions {
  margin-top: 0.15rem;
}

.catalog-import-preview-card {
  padding-bottom: 1rem;
}

.catalog-import-preview-heading {
  margin-bottom: 0.75rem;
}

.catalog-import-bulk-toolbar {
  position: sticky;
  top: 0.5rem;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin: 0.6rem 0 0.85rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.10);
  backdrop-filter: blur(7px);
}

.catalog-import-bulk-status {
  display: grid;
  gap: 0.1rem;
  min-width: 150px;
}

.catalog-import-bulk-status strong {
  color: var(--catalog-import-strong);
  font-size: 0.95rem;
}

.catalog-import-bulk-status span {
  color: var(--catalog-import-muted);
  font-size: 0.74rem;
}

.catalog-import-bulk-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  flex-wrap: wrap;
}

.catalog-import-result-head {
  display: grid;
  grid-template-columns: 52px minmax(220px, 1.35fr) minmax(260px, 1.7fr) 100px 80px;
  gap: 0.7rem;
  align-items: center;
  padding: 0.45rem 0.65rem;
  border-bottom: 1px solid var(--catalog-import-border);
  color: var(--catalog-import-muted);
  font-size: 0.73rem;
  font-weight: 800;
}

.catalog-import-result-list {
  border: 1px solid var(--catalog-import-border);
  border-radius: 13px;
  overflow: clip;
  background: #fff;
}

.catalog-import-result-row {
  display: grid;
  grid-template-columns: 52px minmax(220px, 1.35fr) minmax(260px, 1.7fr) 100px 80px;
  gap: 0.7rem;
  align-items: center;
  min-height: 66px;
  padding: 0.55rem 0.65rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.28);
}

.catalog-import-result-row:last-child {
  border-bottom: 0;
}

.catalog-import-result-row:hover {
  background: #f8fafc;
}

.catalog-import-result-row.is-registered {
  background: #f8fafc;
}

.catalog-import-result-row.is-error {
  background: #fff7ed;
}

.catalog-import-select-cell {
  display: grid;
  place-items: center;
}

.catalog-import-select-cell input[type="checkbox"] {
  width: 1.3rem;
  height: 1.3rem;
  margin: 0;
  cursor: pointer;
}

.catalog-import-select-placeholder {
  color: #94a3b8;
}

.catalog-import-product-cell {
  min-width: 0;
  display: grid;
  gap: 0.15rem;
}

.catalog-import-product-cell strong {
  color: var(--catalog-import-strong);
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.catalog-import-row-kicker {
  color: var(--catalog-import-muted);
  font-size: 0.7rem;
  font-weight: 800;
}

.catalog-import-spec-cell {
  min-width: 0;
  color: #334155;
  font-size: 0.88rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.catalog-import-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 1.8rem;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 900;
  white-space: nowrap;
}

.catalog-import-state.is-ready {
  background: #dcfce7;
  color: #166534;
}

.catalog-import-state.is-similar {
  background: #fef3c7;
  color: #92400e;
}

.catalog-import-state.is-registered {
  background: #e2e8f0;
  color: #475569;
}

.catalog-import-state.is-error {
  background: #fee2e2;
  color: #991b1b;
}

.catalog-import-detail-cell {
  min-width: 0;
}

.catalog-import-row-details {
  position: relative;
}

.catalog-import-row-details > summary {
  cursor: pointer;
  color: #1d4ed8;
  font-weight: 800;
  font-size: 0.82rem;
  white-space: nowrap;
}

.catalog-import-detail-body {
  grid-column: 1 / -1;
  margin-top: 0.75rem;
  padding: 0.8rem;
  border: 1px solid var(--catalog-import-border);
  border-radius: 10px;
  background: #fff;
}


.catalog-import-row-details[open] {
  grid-column: 1 / -1;
}

.catalog-import-row-details[open] > summary {
  margin-bottom: 0.5rem;
}

.catalog-import-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.45rem 1rem;
  margin: 0 0 0.65rem;
}

.catalog-import-detail-list > div {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 0.45rem;
}

.catalog-import-detail-list dt {
  color: var(--catalog-import-muted);
  font-size: 0.75rem;
  font-weight: 800;
}

.catalog-import-detail-list dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.catalog-import-source-list a {
  overflow-wrap: anywhere;
}

.catalog-import-single-form {
  margin-top: 0.65rem;
}

.catalog-import-assistant-card .gear-catalog-category-heading {
  align-items: flex-start;
}

.catalog-import-prompt-actions {
  margin-bottom: 0.8rem;
}

.catalog-import-scope-panel {
  display: grid;
  gap: 0.45rem;
  margin: 0.5rem 0 0.75rem;
}

.catalog-import-scope-actions {
  gap: 0.35rem;
}

.catalog-import-context-details,
.catalog-import-prompt-details,
.catalog-import-safety-card details {
  border: 1px solid var(--catalog-import-border);
  border-radius: 11px;
  background: #fff;
}

.catalog-import-context-details > summary,
.catalog-import-prompt-details > summary,
.catalog-import-safety-card summary {
  padding: 0.75rem 0.85rem;
  cursor: pointer;
  font-weight: 800;
  color: #334155;
}

.catalog-import-prompt-editor {
  display: grid;
  gap: 0.65rem;
  padding: 0 0.85rem 0.85rem;
}

.catalog-import-prompt-editor textarea {
  width: 100%;
  min-height: 220px;
  max-height: 55vh;
  resize: vertical;
  box-sizing: border-box;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.78rem;
  line-height: 1.45;
}

.catalog-import-safety-card details > ul {
  margin-top: 0;
  padding: 0 1.25rem 0.85rem 2rem;
}

@media (max-width: 980px) {
  .catalog-import-result-head {
    display: none;
  }

  .catalog-import-result-row {
    grid-template-columns: 42px minmax(0, 1fr) auto;
    grid-template-areas:
      "select product state"
      "select spec detail";
    min-height: 72px;
  }

  .catalog-import-select-cell {
    grid-area: select;
    align-self: stretch;
  }

  .catalog-import-product-cell {
    grid-area: product;
  }

  .catalog-import-spec-cell {
    grid-area: spec;
  }

  .catalog-import-state-cell {
    grid-area: state;
  }

  .catalog-import-detail-cell {
    grid-area: detail;
  }

  .catalog-import-row-details[open] {
    grid-column: 1 / -1;
    grid-area: auto;
  }

  .catalog-import-bulk-toolbar {
    top: 0.25rem;
    align-items: flex-start;
  }
}

@media (max-width: 720px) {
  .catalog-import-drop-zone {
    min-height: 165px;
    padding: 1rem 0.75rem;
  }

  .catalog-import-upload-actions > *,
  .catalog-import-prompt-actions > * {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }

  .catalog-import-bulk-toolbar {
    display: grid;
    gap: 0.55rem;
    padding: 0.55rem;
  }

  .catalog-import-bulk-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  .catalog-import-bulk-actions .primary {
    grid-column: 1 / -1;
  }

  .catalog-import-bulk-actions button {
    width: 100%;
  }

  .catalog-import-result-row {
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-areas:
      "select product"
      "select spec"
      "select state"
      "select detail";
    gap: 0.35rem 0.55rem;
    padding: 0.6rem 0.55rem;
  }

  .catalog-import-state-cell {
    justify-self: start;
  }

  .catalog-import-detail-cell {
    justify-self: start;
  }

  .catalog-import-row-details[open] {
    grid-column: 1 / -1;
    grid-area: auto;
    justify-self: stretch;
  }

  .catalog-import-detail-list {
    grid-template-columns: 1fr;
  }

  .catalog-import-detail-list > div {
    grid-template-columns: 86px minmax(0, 1fr);
  }

  .catalog-import-prompt-editor textarea {
    min-height: 180px;
  }
}
/* ===== END KMA CSS SOURCE: style-162r61.css ===== */

/* ===== KMA CSS SOURCE 073/101: style-162r62.css ===== */

/* 1.62r62 - Gear Database list management
   Six-category list entry, compact multi-select management, comparison and duplicate review. */

.gear-db-category-list {
  margin: 0;
  padding: 0;
  border: 1px solid rgba(148, 163, 184, 0.38);
  border-radius: 14px;
  overflow: hidden;
  background: #fff;
  list-style: none;
}

.gear-db-category-row + .gear-db-category-row {
  border-top: 1px solid rgba(148, 163, 184, 0.30);
}

.gear-db-category-link {
  display: grid;
  grid-template-columns: minmax(120px, 0.75fr) minmax(0, 1.8fr) auto auto;
  gap: 0.85rem;
  align-items: center;
  min-height: 66px;
  padding: 0.7rem 0.9rem;
  color: inherit;
  text-decoration: none;
  background: #fff;
}

.gear-db-category-link:hover,
.gear-db-category-link:focus-visible {
  background: #f8fafc;
}

.gear-db-category-name {
  color: #0f172a;
  font-size: 1rem;
  font-weight: 900;
}

.gear-db-category-detail {
  min-width: 0;
  color: #64748b;
  font-size: 0.85rem;
  line-height: 1.35;
}

.gear-db-category-count {
  min-width: 4.2rem;
  text-align: right;
  color: #334155;
  font-size: 0.82rem;
  font-weight: 800;
  white-space: nowrap;
}

.gear-db-category-arrow {
  color: #64748b;
  font-size: 1.35rem;
  line-height: 1;
}

.gear-db-manage-panel {
  margin: 0.85rem 0 1rem;
}

.gear-db-manage-toolbar {
  position: sticky;
  top: 0.45rem;
  z-index: 18;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 7px 22px rgba(15, 23, 42, 0.09);
  backdrop-filter: blur(7px);
}

.gear-db-manage-status {
  display: grid;
  gap: 0.15rem;
  min-width: min(360px, 100%);
}

.gear-db-manage-status strong {
  color: #0f172a;
  font-size: 0.95rem;
}

.gear-db-manage-status span {
  color: #64748b;
  font-size: 0.72rem;
  line-height: 1.35;
}

.gear-db-manage-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.gear-db-manage-actions button {
  min-height: 2.35rem;
  white-space: nowrap;
}

.gear-db-manage-actions .danger {
  border-color: #fecaca;
  background: #fff;
  color: #b91c1c;
}

.gear-db-manage-actions .danger:hover:not(:disabled),
.gear-db-manage-actions .danger:focus-visible:not(:disabled) {
  background: #fef2f2;
}

.gear-db-manage-actions button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.gear-db-manage-result {
  margin-top: 0.55rem;
  padding: 0.8rem;
  border: 1px solid #cbd5e1;
  border-radius: 12px;
  background: #f8fafc;
}

.gear-db-manage-result p {
  margin: 0.35rem 0 0;
}

.gear-db-result-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.6rem;
}

.gear-db-result-heading strong {
  color: #0f172a;
}

.gear-db-result-heading span {
  color: #64748b;
  font-size: 0.76rem;
}

.gear-db-compare-scroll {
  max-width: 100%;
  overflow-x: auto;
}

.gear-db-compare-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  background: #fff;
}

.gear-db-compare-table th,
.gear-db-compare-table td {
  padding: 0.55rem 0.65rem;
  border: 1px solid #e2e8f0;
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}

.gear-db-compare-table thead th {
  background: #f1f5f9;
  color: #0f172a;
}

.gear-db-compare-table tbody th {
  width: 110px;
  color: #475569;
  background: #f8fafc;
  white-space: nowrap;
}

.gear-db-duplicate-list {
  margin: 0.45rem 0 0.75rem;
  padding-left: 1.25rem;
}

.gear-db-duplicate-list li + li {
  margin-top: 0.3rem;
}

.gear-db-duplicate-list.is-variation {
  color: #475569;
}

.gear-db-hidden-delete-form {
  display: none;
}

.gear-ledger-select-head,
.gear-ledger-select-cell {
  width: 46px;
  min-width: 46px;
  text-align: center !important;
}

.gear-ledger-select-cell input[type="checkbox"],
.gear-db-mobile-selector input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  cursor: pointer;
}

.gear-db-mobile-selector {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  min-width: 2rem;
  min-height: 2rem;
  margin-right: 0.25rem;
}

.gear-ledger-mobile-item > summary {
  align-items: center;
}

@media (max-width: 900px) {
  .gear-db-manage-toolbar {
    align-items: stretch;
    display: grid;
  }

  .gear-db-manage-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .gear-db-category-link {
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-areas:
      "name count arrow"
      "detail detail detail";
    gap: 0.2rem 0.55rem;
    min-height: 62px;
    padding: 0.7rem 0.75rem;
  }

  .gear-db-category-name {
    grid-area: name;
  }

  .gear-db-category-detail {
    grid-area: detail;
  }

  .gear-db-category-count {
    grid-area: count;
  }

  .gear-db-category-arrow {
    grid-area: arrow;
  }

  .gear-db-manage-toolbar {
    top: 0.2rem;
    padding: 0.55rem;
  }

  .gear-db-manage-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  .gear-db-manage-actions button {
    width: 100%;
  }

  .gear-db-manage-actions .danger,
  .gear-db-manage-actions [data-gear-duplicate-check] {
    grid-column: 1 / -1;
  }

  .gear-db-result-heading {
    align-items: flex-start;
    display: grid;
    gap: 0.2rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r62.css ===== */

/* ===== KMA CSS SOURCE 074/101: style-162r63.css ===== */

/* 1.62r63 - My Gear six-category list foundation
   Mirrors the Gear Database entry pattern and adds safe owner-scoped bulk archive. */

.my-gear-category-section {
  margin-top: 0;
}

.my-gear-category-list .gear-db-category-link {
  min-height: 64px;
}

.my-gear-legacy-entry {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
  margin-top: .8rem;
}

.my-gear-legacy-entry small {
  color: #64748b;
  line-height: 1.4;
}

.my-gear-archive-landing {
  margin-top: 1rem;
}

.my-gear-bulk-panel {
  position: sticky;
  top: .4rem;
  z-index: 17;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin: .7rem 0 .85rem;
  padding: .65rem .75rem;
  border: 1px solid #cbd5e1;
  border-radius: 13px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 7px 22px rgba(15,23,42,.08);
  backdrop-filter: blur(7px);
}

.my-gear-bulk-status {
  display: grid;
  gap: .15rem;
  min-width: min(360px, 100%);
}

.my-gear-bulk-status strong {
  color: #0f172a;
  font-size: .95rem;
}

.my-gear-bulk-status span {
  color: #64748b;
  font-size: .72rem;
  line-height: 1.35;
}

.my-gear-bulk-actions {
  display: flex;
  justify-content: flex-end;
  gap: .4rem;
  flex-wrap: wrap;
}

.my-gear-bulk-actions button {
  min-height: 2.35rem;
  white-space: nowrap;
}

.my-gear-bulk-actions .danger {
  border-color: #fecaca;
  background: #fff;
  color: #b91c1c;
}

.my-gear-bulk-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.my-gear-hidden-bulk-form {
  display: none;
}

.my-gear-select-row {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  align-items: stretch;
  min-width: 0;
}

.my-gear-select-row.is-line-scope {
  grid-template-columns: minmax(0, 1fr);
}

.my-gear-row-selector {
  display: grid;
  place-items: start center;
  padding: .9rem .25rem;
  border-top: 1px solid rgba(15, 23, 42, .08);
  background: #f8fafc;
  cursor: pointer;
}

.my-gear-row-selector input[type="checkbox"] {
  width: 1.25rem;
  height: 1.25rem;
  margin: 0;
  cursor: pointer;
}

.my-gear-select-row > .my-gear-ledger-item {
  min-width: 0;
}

@media (max-width: 900px) {
  .my-gear-bulk-panel {
    display: grid;
    align-items: stretch;
  }

  .my-gear-bulk-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 720px) {
  .my-gear-bulk-panel {
    top: .2rem;
    padding: .55rem;
  }

  .my-gear-bulk-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  .my-gear-bulk-actions button {
    width: 100%;
  }

  .my-gear-bulk-actions .danger {
    grid-column: 1 / -1;
  }

  .my-gear-select-row {
    grid-template-columns: 38px minmax(0, 1fr);
  }

  .my-gear-row-selector {
    padding-top: .82rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r63.css ===== */

/* ===== KMA CSS SOURCE 075/101: style-162r64.css ===== */
/* 1.62r64 - common gear search/sort and personal manual ordering */

.my-gear-list-controls {
  display: grid;
  grid-template-columns: minmax(240px, 1.6fr) minmax(210px, 0.9fr) auto;
  gap: 0.65rem;
  align-items: end;
  margin: 0.9rem 0 0.7rem;
  padding: 0.75rem;
  border: 1px solid #cbd5e1;
  border-radius: 13px;
  background: #f8fafc;
}

.my-gear-list-controls label {
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  margin: 0;
}

.my-gear-list-controls label > span {
  color: #475569;
  font-size: 0.78rem;
  font-weight: 800;
}

.my-gear-list-controls input,
.my-gear-list-controls select {
  width: 100%;
  min-height: 2.55rem;
}

.my-gear-list-control-actions {
  display: flex;
  gap: 0.4rem;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.my-gear-list-control-actions .primary,
.my-gear-list-control-actions .secondary {
  min-height: 2.55rem;
  white-space: nowrap;
}

.my-gear-order-note {
  margin: 0.45rem 0 0.8rem;
  padding: 0.55rem 0.7rem;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 0.8rem;
  line-height: 1.45;
}

.my-gear-order-note.is-muted {
  border-color: #e2e8f0;
  background: #f8fafc;
  color: #64748b;
}

.my-gear-order-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
  margin: 0.55rem 0;
  padding: 0.5rem 0.6rem;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
}

.my-gear-order-actions > span {
  margin-right: auto;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 800;
}

.my-gear-order-actions form {
  display: flex;
  gap: 0.35rem;
  margin: 0;
}

.my-gear-order-actions button {
  min-height: 2.2rem;
  padding: 0.35rem 0.75rem;
}

.gear-ledger-filter-grid select[name="sort"] {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 820px) {
  .my-gear-list-controls {
    grid-template-columns: 1fr 1fr;
  }

  .my-gear-list-search {
    grid-column: 1 / -1;
  }

  .my-gear-list-control-actions {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .my-gear-list-control-actions .primary,
  .my-gear-list-control-actions .secondary {
    flex: 1 1 160px;
    text-align: center;
  }
}

@media (max-width: 560px) {
  .my-gear-list-controls {
    grid-template-columns: 1fr;
    padding: 0.65rem;
  }

  .my-gear-list-search,
  .my-gear-list-control-actions {
    grid-column: auto;
  }

  .my-gear-list-control-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .my-gear-order-actions {
    align-items: stretch;
    display: grid;
  }

  .my-gear-order-actions form {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .my-gear-order-actions button {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-162r64.css ===== */

/* ===== KMA CSS SOURCE 076/101: style-162r65.css ===== */
/* KMA FISHING CLUB 1.62r65
   Admin gear-master compact horizontal list / sorting UI.
   PROGRAM-only: no schema or data rewrite. */

.gear-master-admin-container {
  width: min(1480px, calc(100% - 28px));
}

.gear-master-admin-page {
  min-width: 0;
}

.gear-master-list-controls-card {
  display: grid;
  gap: 0.9rem;
}

.gear-master-list-controls-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.gear-master-list-controls-heading h2,
.gear-master-list-controls-heading p {
  margin-top: 0;
}

.gear-master-list-controls-heading p {
  margin-bottom: 0;
}

.gear-master-list-controls-heading > strong {
  flex: none;
  white-space: nowrap;
}

.gear-master-list-controls {
  display: grid;
  grid-template-columns: minmax(240px, 1.6fr) minmax(150px, .6fr) minmax(200px, .8fr) auto;
  gap: 0.75rem;
  align-items: end;
}

.gear-master-list-controls label {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
}

.gear-master-list-controls label > span {
  font-size: 0.78rem;
  font-weight: 800;
}

.gear-master-list-controls input,
.gear-master-list-controls select {
  width: 100%;
  min-width: 0;
}

.gear-master-list-control-actions {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}

.gear-master-list-control-actions > * {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin: 0;
  white-space: nowrap;
}

.gear-master-list-shell {
  overflow: hidden;
  border: 1px solid var(--line, #d9dee6);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px #0f38540d;
}

.gear-master-list-header,
.gear-master-list-summary {
  display: grid;
  grid-template-columns: 90px minmax(230px, 1.5fr) minmax(170px, .8fr) minmax(120px, .55fr) minmax(110px, .5fr);
  gap: 0.8rem;
  align-items: center;
}

.gear-master-list-header {
  padding: 0.65rem 0.9rem;
  color: #64748b;
  background: #f8fafc;
  border-bottom: 1px solid var(--line, #d9dee6);
  font-size: 0.74rem;
  font-weight: 900;
}

.gear-master-admin-list {
  display: block;
}

.gear-master-list-row {
  margin: 0;
  background: #fff;
}

.gear-master-list-row + .gear-master-list-row {
  border-top: 1px solid var(--line, #d9dee6);
}

.gear-master-list-row.is-inactive {
  background: #f8fafc;
}

.gear-master-list-summary {
  min-height: 58px;
  padding: 0.7rem 0.9rem;
  cursor: pointer;
  list-style: none;
}

.gear-master-list-summary::-webkit-details-marker,
.gear-master-series-row-summary::-webkit-details-marker {
  display: none;
}

.gear-master-list-summary:hover,
.gear-master-list-summary:focus-visible {
  background: #f0f9ff;
}

.gear-master-list-row[open] > .gear-master-list-summary {
  background: #eef8ff;
  border-bottom: 1px solid #bae6fd;
}

.gear-master-list-identity,
.gear-master-series-name {
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}

.gear-master-list-identity strong,
.gear-master-series-name strong {
  overflow-wrap: anywhere;
}

.gear-master-list-identity small,
.gear-master-series-name small,
.gear-master-list-series-count small {
  color: #64748b;
}

.gear-master-list-series-count {
  min-width: 0;
}

.gear-master-source {
  overflow-wrap: anywhere;
}

.gear-master-list-open-label {
  color: #0369a1;
  font-weight: 800;
  text-align: right;
}

.gear-master-list-open-label::after {
  content: " ▾";
}

.gear-master-list-row[open] > .gear-master-list-summary .gear-master-list-open-label::after,
.gear-master-series-row[open] > .gear-master-series-row-summary .gear-master-list-open-label::after {
  content: " ▴";
}

.gear-master-list-row-body {
  display: grid;
  gap: 1rem;
  padding: 0.9rem;
  background: #fbfdff;
}

.gear-master-manufacturer-tools {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, .8fr);
  gap: 0.9rem;
  align-items: start;
}

.gear-master-manufacturer-tools > * {
  min-width: 0;
}

.gear-master-admin-edit {
  margin: 0;
}

.gear-master-series-section {
  margin: 0;
  padding: 0;
  border-top: 0;
}

.gear-master-series-heading {
  margin-bottom: 0.45rem;
  padding-top: 0.1rem;
}

.gear-master-series-heading h3 {
  margin: 0;
}

.gear-master-series-list {
  overflow: hidden;
  border: 1px solid var(--line, #d9dee6);
  border-radius: 11px;
  background: #fff;
}

.gear-master-series-list-header,
.gear-master-series-row-summary {
  display: grid;
  grid-template-columns: 90px minmax(220px, 1.4fr) minmax(150px, .7fr) minmax(110px, .5fr);
  gap: 0.75rem;
  align-items: center;
}

.gear-master-series-list-header {
  padding: 0.55rem 0.75rem;
  color: #64748b;
  background: #f8fafc;
  border-bottom: 1px solid var(--line, #d9dee6);
  font-size: 0.72rem;
  font-weight: 900;
}

.gear-master-series-row + .gear-master-series-row {
  border-top: 1px solid var(--line, #d9dee6);
}

.gear-master-series-row.is-inactive {
  background: #f8fafc;
}

.gear-master-series-row-summary {
  min-height: 50px;
  padding: 0.6rem 0.75rem;
  cursor: pointer;
  list-style: none;
}

.gear-master-series-row-summary:hover,
.gear-master-series-row-summary:focus-visible {
  background: #f8fcff;
}

.gear-master-series-row[open] > .gear-master-series-row-summary {
  background: #f0f9ff;
  border-bottom: 1px solid #bae6fd;
}

.gear-master-series-row-body {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(260px, .75fr);
  gap: 0.8rem;
  padding: 0.75rem;
  background: #fbfdff;
}

.gear-master-series-row-body > * {
  min-width: 0;
}

.gear-master-admin-row-actions {
  align-content: start;
}

@media (max-width: 1180px) {
  .gear-master-list-controls {
    grid-template-columns: minmax(0, 1.4fr) minmax(140px, .55fr) minmax(190px, .8fr);
  }

  .gear-master-list-control-actions {
    grid-column: 1 / -1;
  }

  .gear-master-list-control-actions > * {
    flex: 1 1 0;
  }

  .gear-master-list-header,
  .gear-master-list-summary {
    grid-template-columns: 82px minmax(200px, 1.4fr) minmax(150px, .8fr) minmax(100px, .55fr) minmax(96px, .5fr);
  }

  .gear-master-manufacturer-tools,
  .gear-master-series-row-body {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 820px) {
  .gear-master-admin-container {
    width: min(100% - 18px, 1480px);
  }

  .gear-master-list-controls-heading {
    display: grid;
  }

  .gear-master-list-controls-heading > strong {
    white-space: normal;
  }

  .gear-master-list-controls {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .gear-master-list-search,
  .gear-master-list-control-actions {
    grid-column: 1 / -1;
  }

  .gear-master-list-header,
  .gear-master-series-list-header {
    display: none;
  }

  .gear-master-list-summary {
    grid-template-columns: 84px minmax(0, 1fr) auto;
    grid-template-areas:
      "state name open"
      "state series source";
    gap: 0.3rem 0.65rem;
  }

  .gear-master-list-summary > .gear-master-state { grid-area: state; }
  .gear-master-list-summary > .gear-master-list-identity { grid-area: name; }
  .gear-master-list-summary > .gear-master-list-series-count { grid-area: series; }
  .gear-master-list-summary > .gear-master-source { grid-area: source; }
  .gear-master-list-summary > .gear-master-list-open-label { grid-area: open; }

  .gear-master-list-open-label {
    text-align: right;
  }

  .gear-master-series-row-summary {
    grid-template-columns: 84px minmax(0, 1fr) auto;
    grid-template-areas:
      "state name open"
      "state category category";
    gap: 0.3rem 0.65rem;
  }

  .gear-master-series-row-summary > .gear-master-state { grid-area: state; }
  .gear-master-series-row-summary > .gear-master-series-name { grid-area: name; }
  .gear-master-series-row-summary > span:nth-child(3) { grid-area: category; }
  .gear-master-series-row-summary > .gear-master-list-open-label { grid-area: open; }
}

@media (max-width: 520px) {
  .gear-master-admin-container {
    width: calc(100% - 12px);
  }

  .gear-master-list-controls {
    grid-template-columns: minmax(0, 1fr);
  }

  .gear-master-list-search,
  .gear-master-list-control-actions {
    grid-column: auto;
  }

  .gear-master-list-control-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .gear-master-list-summary,
  .gear-master-series-row-summary {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "name open"
      "state state"
      "series series"
      "source source";
    padding: 0.7rem;
  }

  .gear-master-list-summary > .gear-master-list-identity,
  .gear-master-series-row-summary > .gear-master-series-name {
    grid-area: name;
  }

  .gear-master-list-summary > .gear-master-state,
  .gear-master-series-row-summary > .gear-master-state {
    grid-area: state;
  }

  .gear-master-list-summary > .gear-master-list-series-count {
    grid-area: series;
  }

  .gear-master-list-summary > .gear-master-source {
    grid-area: source;
  }

  .gear-master-list-summary > .gear-master-list-open-label,
  .gear-master-series-row-summary > .gear-master-list-open-label {
    grid-area: open;
  }

  .gear-master-series-row-summary > span:nth-child(3) {
    grid-area: series;
  }

  .gear-master-series-row-summary {
    grid-template-areas:
      "name open"
      "state state"
      "series series";
  }

  .gear-master-list-row-body,
  .gear-master-series-row-body {
    padding: 0.65rem;
  }
}
/* ===== END KMA CSS SOURCE: style-162r65.css ===== */

/* ===== KMA CSS SOURCE 077/101: style-162r66.css ===== */
/* KMA FISHING CLUB 1.62r66 - Shared Gear Catalog quality compact six-way list */

.catalog-quality-page {
  display: grid;
  gap: 1rem;
  width: calc(100vw - 2rem);
  max-width: none;
  margin-left: calc(50% - 50vw + 1rem);
  margin-right: 0;
}

.catalog-quality-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.catalog-quality-hero > div:first-child {
  min-width: 0;
  max-width: 72rem;
}

.catalog-quality-hero h1 {
  margin-bottom: .35rem;
}

.catalog-quality-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(110px, 1fr));
  gap: .55rem;
}

.catalog-quality-summary > div {
  min-width: 0;
  padding: .7rem .8rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .7rem;
  background: var(--card, #fff);
}

.catalog-quality-summary strong,
.catalog-quality-summary span {
  display: block;
}

.catalog-quality-summary strong {
  font-size: 1.3rem;
}

.catalog-quality-summary span {
  margin-top: .15rem;
  font-size: .76rem;
  font-weight: 700;
  color: #64748b;
}

.catalog-quality-category-strip {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: .45rem;
  padding: .65rem;
}

.catalog-quality-category-strip a {
  display: flex;
  min-width: 0;
  min-height: 46px;
  align-items: center;
  justify-content: space-between;
  gap: .45rem;
  padding: .55rem .65rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .65rem;
  background: #fff;
  color: inherit;
  text-decoration: none;
}

.catalog-quality-category-strip a:hover,
.catalog-quality-category-strip a:focus-visible,
.catalog-quality-category-strip a.is-active {
  border-color: #2563eb;
  background: rgba(37, 99, 235, .07);
}

.catalog-quality-category-strip span {
  min-width: 0;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.catalog-quality-category-strip strong {
  flex: 0 0 auto;
  min-width: 1.7rem;
  text-align: right;
}

.catalog-quality-controls {
  padding: .8rem;
}

.catalog-quality-filter-form {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) repeat(4, minmax(150px, 1fr)) auto;
  gap: .65rem;
  align-items: end;
}

.catalog-quality-filter-form label {
  display: grid;
  gap: .25rem;
  min-width: 0;
  font-size: .78rem;
  font-weight: 700;
}

.catalog-quality-filter-form input,
.catalog-quality-filter-form select {
  width: 100%;
  min-width: 0;
}

.catalog-quality-filter-actions {
  display: flex;
  gap: .45rem;
  align-items: center;
}

.catalog-quality-filter-actions > * {
  min-height: 42px;
}

.catalog-quality-bulk-toolbar {
  position: sticky;
  top: .5rem;
  z-index: 20;
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  padding: .65rem .8rem;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .7rem;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 6px 22px rgba(15, 23, 42, .08);
  backdrop-filter: blur(8px);
}

.catalog-quality-bulk-toolbar > div:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  align-items: baseline;
}

#catalog-quality-selected-count {
  margin-left: .35rem;
  font-weight: 700;
  color: #1d4ed8;
}

.catalog-quality-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  justify-content: flex-end;
}

.catalog-quality-list-shell {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--border, #d7dde5);
  border-radius: .75rem;
  background: #fff;
}

.catalog-quality-list-header,
.catalog-quality-list-row {
  display: grid;
  grid-template-columns:
    42px
    minmax(100px, .75fr)
    minmax(260px, 2.3fr)
    minmax(150px, 1.1fr)
    minmax(110px, .75fr)
    minmax(170px, 1.2fr)
    minmax(92px, .7fr);
  gap: .6rem;
  min-width: 0;
}

.catalog-quality-list-header {
  align-items: center;
  padding: .55rem .75rem;
  border-bottom: 1px solid var(--border, #d7dde5);
  background: #f8fafc;
  color: #64748b;
  font-size: .73rem;
  font-weight: 800;
}

.catalog-quality-list {
  min-width: 0;
}

.catalog-quality-list-row {
  position: relative;
  align-items: center;
  padding: .65rem .75rem;
  border-bottom: 1px solid #e8edf3;
}

.catalog-quality-list-row:last-child {
  border-bottom: 0;
}

.catalog-quality-list-row:hover {
  background: #fbfdff;
}

.catalog-quality-list-row.is-archived {
  background: #f8fafc;
  opacity: .82;
}

.catalog-quality-select-cell,
.catalog-quality-category-cell,
.catalog-quality-product-cell,
.catalog-quality-model-cell,
.catalog-quality-reference-cell,
.catalog-quality-issue-cell {
  min-width: 0;
}

.catalog-quality-select-cell {
  display: flex;
  justify-content: center;
}

.catalog-quality-select-cell input {
  width: 20px;
  height: 20px;
}

.catalog-quality-select-placeholder {
  color: #94a3b8;
}

.catalog-quality-category-cell,
.catalog-quality-product-cell,
.catalog-quality-model-cell,
.catalog-quality-reference-cell {
  display: grid;
  gap: .15rem;
}

.catalog-quality-product-cell strong,
.catalog-quality-product-cell span,
.catalog-quality-product-cell small,
.catalog-quality-model-cell span,
.catalog-quality-model-cell small {
  overflow-wrap: anywhere;
}

.catalog-quality-product-cell > span,
.catalog-quality-product-cell > small,
.catalog-quality-model-cell > small,
.catalog-quality-reference-cell small,
.catalog-quality-reference-cell span {
  color: #64748b;
}

.catalog-quality-product-cell > small,
.catalog-quality-model-cell > small,
.catalog-quality-reference-cell small,
.catalog-quality-reference-cell span {
  font-size: .74rem;
}

.catalog-quality-category-badge,
.catalog-quality-status-badge,
.catalog-quality-issue-badge,
.catalog-quality-clean-badge {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  align-items: center;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 800;
  line-height: 1.2;
}

.catalog-quality-category-badge {
  padding: .28rem .5rem;
  background: #eaf2ff;
  color: #1e40af;
}

.catalog-quality-status-badge {
  margin-top: .18rem;
  padding: .2rem .45rem;
}

.catalog-quality-status-badge.archived {
  background: #e2e8f0;
  color: #475569;
}

.catalog-quality-issue-cell {
  display: flex;
  flex-wrap: wrap;
  gap: .28rem;
}

.catalog-quality-issue-badge {
  padding: .24rem .45rem;
  background: #fff7ed;
  color: #9a3412;
  border: 1px solid #fed7aa;
}

.catalog-quality-clean-badge {
  padding: .24rem .45rem;
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}

.catalog-quality-row-details {
  min-width: 0;
}

.catalog-quality-row-details > summary {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 800;
  color: #1d4ed8;
}

.catalog-quality-row-details[open] {
  grid-column: 1 / -1;
  margin: .1rem -.1rem 0;
  padding: .75rem;
  border-top: 1px solid #dbe3ec;
  background: #f8fafc;
}

.catalog-quality-row-details[open] > summary {
  justify-content: flex-start;
  margin-bottom: .7rem;
}

.catalog-quality-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 1fr);
  gap: .8rem;
}

.catalog-quality-detail-grid > section {
  min-width: 0;
  padding: .7rem;
  border: 1px solid #dbe3ec;
  border-radius: .65rem;
  background: #fff;
}

.catalog-quality-detail-grid h3 {
  margin: 0 0 .55rem;
  font-size: .95rem;
}

.catalog-quality-detail-list {
  display: grid;
  gap: .3rem;
  margin: 0;
}

.catalog-quality-detail-list > div {
  display: grid;
  grid-template-columns: minmax(6rem, .7fr) minmax(0, 2fr);
  gap: .5rem;
}

.catalog-quality-detail-list dt {
  color: #64748b;
  font-size: .75rem;
  font-weight: 800;
}

.catalog-quality-detail-list dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.catalog-quality-inline-actions {
  margin-top: .65rem;
}

.catalog-quality-inline-actions > * {
  display: inline-flex;
}

.catalog-quality-edit-panel {
  margin-top: .75rem;
}

.catalog-quality-edit-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
}

.catalog-quality-edit-grid label {
  display: grid;
  gap: .2rem;
  min-width: 0;
}

.catalog-quality-specialized-note {
  margin: .75rem 0 0;
}

.catalog-quality-review-panel > summary,
.catalog-quality-policy > summary {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  font-weight: 800;
}

.catalog-quality-pair-list {
  display: grid;
  gap: .5rem;
}

.catalog-quality-pair-list article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .7rem;
  align-items: center;
  padding: .6rem;
  border-top: 1px solid #e2e8f0;
}

.catalog-quality-pair-list article > div {
  display: grid;
  gap: .2rem;
  min-width: 0;
}

.catalog-quality-pair-list article span {
  overflow-wrap: anywhere;
}

.catalog-quality-empty {
  margin: 0;
  padding: 1.2rem;
  text-align: center;
  color: #64748b;
}

.catalog-quality-policy ul {
  margin-bottom: 0;
}

@media (max-width: 1320px) {
  .catalog-quality-page {
    width: calc(100vw - 1.5rem);
    margin-left: calc(50% - 50vw + .75rem);
  }

  .catalog-quality-filter-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .catalog-quality-search-label {
    grid-column: span 2;
  }

  .catalog-quality-filter-actions {
    justify-content: flex-end;
  }

  .catalog-quality-list-header,
  .catalog-quality-list-row {
    grid-template-columns:
      38px
      minmax(95px, .75fr)
      minmax(240px, 2.2fr)
      minmax(135px, 1fr)
      minmax(95px, .7fr)
      minmax(150px, 1.1fr)
      minmax(80px, .6fr);
    gap: .45rem;
  }
}

@media (max-width: 1050px) {
  .catalog-quality-summary,
  .catalog-quality-category-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .catalog-quality-list-header {
    display: none;
  }

  .catalog-quality-list-row {
    grid-template-columns: 38px minmax(95px, .7fr) minmax(0, 2fr) minmax(90px, .65fr);
    grid-template-areas:
      "select category product details"
      "select category model details"
      "select reference issue details";
    gap: .35rem .55rem;
    align-items: start;
  }

  .catalog-quality-select-cell { grid-area: select; padding-top: .15rem; }
  .catalog-quality-category-cell { grid-area: category; }
  .catalog-quality-product-cell { grid-area: product; }
  .catalog-quality-model-cell { grid-area: model; }
  .catalog-quality-reference-cell { grid-area: reference; }
  .catalog-quality-issue-cell { grid-area: issue; }
  .catalog-quality-row-details { grid-area: details; }

  .catalog-quality-row-details[open] {
    grid-column: 1 / -1;
    grid-area: auto;
  }

  .catalog-quality-detail-grid {
    grid-template-columns: 1fr;
  }

  .catalog-quality-edit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .catalog-quality-page {
    width: calc(100vw - 1rem);
    margin-left: calc(50% - 50vw + .5rem);
    gap: .75rem;
  }

  .catalog-quality-hero,
  .catalog-quality-bulk-toolbar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .gear-master-admin-actions,
  .catalog-quality-bulk-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .gear-master-admin-actions > *,
  .catalog-quality-bulk-actions > * {
    width: 100%;
    min-width: 0;
  }

  .catalog-quality-summary,
  .catalog-quality-category-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-quality-filter-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-quality-search-label {
    grid-column: 1 / -1;
  }

  .catalog-quality-filter-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-quality-filter-actions > * {
    width: 100%;
  }

  .catalog-quality-list-row {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    grid-template-areas:
      "select category details"
      "select product details"
      "select model details"
      "select reference details"
      "select issue details";
    padding: .65rem .55rem;
  }

  .catalog-quality-category-cell {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    align-items: center;
  }

  .catalog-quality-reference-cell {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .5rem;
    align-items: baseline;
  }

  .catalog-quality-row-details > summary {
    justify-content: flex-end;
  }

  .catalog-quality-detail-list > div {
    grid-template-columns: 1fr;
    gap: .05rem;
  }

  .catalog-quality-edit-grid {
    grid-template-columns: 1fr;
  }

  .catalog-quality-pair-list article {
    grid-template-columns: 1fr;
  }

  .catalog-quality-pair-list article form,
  .catalog-quality-pair-list article button {
    width: 100%;
  }
}

@media (max-width: 430px) {
  .catalog-quality-summary,
  .catalog-quality-category-strip,
  .catalog-quality-filter-form,
  .gear-master-admin-actions,
  .catalog-quality-bulk-actions,
  .catalog-quality-filter-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .catalog-quality-search-label,
  .catalog-quality-filter-actions {
    grid-column: auto;
  }

  .catalog-quality-category-strip a {
    min-height: 42px;
  }

  .catalog-quality-bulk-toolbar {
    position: static;
  }
}
/* ===== END KMA CSS SOURCE: style-162r66.css ===== */

/* ===== KMA CSS SOURCE 078/101: style-162r68.css ===== */
/* KMA FISHING CLUB 1.62r68
   Gear administration responsive width unification.
   PROGRAM-only: no DB/schema changes.

   r68 removes the mixed 720px form-card / viewport-breakout layout from
   Gear administration pages.  The three related workflows share the same
   wide-page baseline and use predictable desktop/tablet/mobile breakpoints.
*/

:root {
  --kma-gear-admin-max: 1680px;
  --kma-gear-admin-gutter: 24px;
}

/* -------------------------------------------------------------------------
   Common wide-page baseline
   ------------------------------------------------------------------------- */
.container.page-wide.gear-master-admin-container,
.container.page-wide.catalog-quality-container,
.container.page-wide.catalog-official-container {
  width: min(var(--kma-gear-admin-max), calc(100% - var(--kma-gear-admin-gutter))) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.gear-master-admin-page,
.catalog-quality-page,
.catalog-official-container .gear-web-page {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

/* The historical shared .form-card is intentionally narrow for normal
   forms.  Gear administration is a data-management workflow, so only these
   explicitly scoped pages opt out of that cap. */
.gear-master-admin-page > .form-card,
.gear-master-admin-page > details.form-card,
.catalog-quality-page > .form-card,
.catalog-quality-page > details.form-card,
.catalog-official-container .gear-web-page > .form-card,
.catalog-official-container .gear-web-page > details.form-card {
  width: 100% !important;
  max-width: none !important;
  min-width: 0;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}

/* r66 used a viewport breakout while the parent container remained narrow.
   Reset that workaround now that the page itself opts into page-wide. */
.catalog-quality-page {
  gap: 1rem;
}

/* Keep every direct data section on the same left/right baseline. */
.gear-master-admin-summary,
.gear-master-list-shell,
.catalog-quality-summary,
.catalog-quality-category-strip,
.catalog-quality-controls,
.catalog-quality-bulk-toolbar,
.catalog-quality-list-shell,
.catalog-official-container .gear-web-flow {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}

/* -------------------------------------------------------------------------
   Headings / action buttons
   ------------------------------------------------------------------------- */
.gear-master-admin-hero,
.catalog-quality-hero,
.catalog-official-container .gear-web-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: start;
  gap: 1rem 1.25rem;
}

.gear-master-admin-hero > div:first-child,
.catalog-quality-hero > div:first-child,
.catalog-official-container .gear-web-hero > div:first-child {
  min-width: 0;
  max-width: none;
}

.gear-master-admin-actions {
  display: flex;
  width: auto;
  max-width: 48rem;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: flex-start;
  gap: .55rem;
}

.gear-master-admin-actions > * {
  width: auto !important;
  min-width: max-content;
  margin: 0;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
  text-align: center;
}

.catalog-official-container .gear-web-hero > .secondary {
  width: auto !important;
  min-width: max-content;
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}

/* -------------------------------------------------------------------------
   Summary / filters
   ------------------------------------------------------------------------- */
.gear-master-admin-summary {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.catalog-quality-summary {
  grid-template-columns: repeat(6, minmax(130px, 1fr));
}

.catalog-quality-category-strip {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.gear-master-list-controls-card,
.catalog-quality-controls {
  padding-inline: clamp(.75rem, 1.4vw, 1.15rem);
}

.gear-master-list-controls {
  grid-template-columns:
    minmax(260px, 1.7fr)
    minmax(150px, .65fr)
    minmax(220px, .9fr)
    max-content;
}

.gear-master-list-control-actions {
  display: flex;
  width: auto;
  min-width: 0;
  justify-content: flex-end;
  gap: .5rem;
}

.gear-master-list-control-actions > * {
  width: auto !important;
  min-width: max-content;
}

.catalog-quality-filter-form {
  grid-template-columns:
    minmax(280px, 1.8fr)
    minmax(140px, .75fr)
    minmax(140px, .75fr)
    minmax(165px, .9fr)
    minmax(210px, 1fr)
    max-content;
}

.catalog-quality-filter-actions {
  display: flex;
  width: auto;
  min-width: 0;
  justify-content: flex-end;
  align-items: center;
  gap: .45rem;
}

.catalog-quality-filter-actions > * {
  width: auto !important;
  min-width: max-content;
  white-space: nowrap;
}

.catalog-quality-bulk-actions {
  display: flex;
  width: auto;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: .45rem;
}

.catalog-quality-bulk-actions > * {
  width: auto !important;
  min-width: max-content;
  white-space: nowrap;
}

/* Official-search forms should use the newly available width rather than
   keeping tiny fields in the centre of a wide card. */
.catalog-official-container .gear-catalog-form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.catalog-official-container .gear-web-search-form input,
.catalog-official-container .gear-web-search-form select,
.catalog-official-container .gear-web-search-form textarea {
  min-width: 0;
  width: 100%;
}

/* -------------------------------------------------------------------------
   Data lists
   ------------------------------------------------------------------------- */
.gear-master-list-header,
.gear-master-list-summary {
  grid-template-columns:
    minmax(88px, .55fr)
    minmax(260px, 1.8fr)
    minmax(180px, .85fr)
    minmax(120px, .6fr)
    minmax(120px, .6fr);
}

.gear-master-series-list-header,
.gear-master-series-row-summary {
  grid-template-columns:
    minmax(88px, .55fr)
    minmax(250px, 1.7fr)
    minmax(170px, .8fr)
    minmax(120px, .6fr);
}

.catalog-quality-list-header,
.catalog-quality-list-row {
  grid-template-columns:
    42px
    minmax(105px, .7fr)
    minmax(280px, 2.25fr)
    minmax(155px, 1fr)
    minmax(105px, .7fr)
    minmax(180px, 1.15fr)
    minmax(92px, .62fr);
}

/* Long Japanese labels and product names may wrap inside data cells, but
   action buttons must not collapse to one character per line. */
.gear-master-list-identity,
.gear-master-series-name,
.catalog-quality-product-cell,
.catalog-quality-model-cell,
.catalog-quality-reference-cell,
.catalog-quality-issue-cell {
  min-width: 0;
}

.gear-master-list-identity *,
.gear-master-series-name *,
.catalog-quality-product-cell *,
.catalog-quality-model-cell * {
  overflow-wrap: anywhere;
}

/* -------------------------------------------------------------------------
   Tablet
   ------------------------------------------------------------------------- */
@media (max-width: 1240px) {
  :root {
    --kma-gear-admin-gutter: 20px;
  }

  .gear-master-admin-hero,
  .catalog-quality-hero,
  .catalog-official-container .gear-web-hero {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .gear-master-list-controls {
    grid-template-columns: minmax(240px, 1.5fr) minmax(140px, .65fr) minmax(190px, .85fr);
  }

  .gear-master-list-control-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }

  .catalog-quality-filter-form {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .catalog-quality-search-label {
    grid-column: span 2;
  }

  .catalog-quality-filter-actions {
    justify-content: flex-start;
  }

  .catalog-quality-list-header,
  .catalog-quality-list-row {
    grid-template-columns:
      38px
      minmax(100px, .75fr)
      minmax(240px, 2fr)
      minmax(145px, 1fr)
      minmax(100px, .7fr)
      minmax(160px, 1.05fr)
      minmax(82px, .55fr);
  }
}

/* -------------------------------------------------------------------------
   Compact tablet: switch list rows to labelled stacked grid.
   ------------------------------------------------------------------------- */
@media (max-width: 980px) {
  .gear-master-admin-hero,
  .catalog-quality-hero,
  .catalog-official-container .gear-web-hero {
    grid-template-columns: minmax(0, 1fr);
  }

  .gear-master-admin-actions {
    width: 100%;
    max-width: none;
    justify-content: flex-start;
  }

  .gear-master-admin-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-quality-summary,
  .catalog-quality-category-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gear-master-list-header,
  .catalog-quality-list-header {
    display: none;
  }

  .gear-master-list-summary {
    grid-template-columns: 84px minmax(0, 1fr) auto;
    grid-template-areas:
      "state name open"
      "state series source";
    gap: .3rem .65rem;
  }

  .gear-master-list-summary > .gear-master-state { grid-area: state; }
  .gear-master-list-summary > .gear-master-list-identity { grid-area: name; }
  .gear-master-list-summary > .gear-master-list-series-count { grid-area: series; }
  .gear-master-list-summary > .gear-master-source { grid-area: source; }
  .gear-master-list-summary > .gear-master-list-open-label { grid-area: open; }

  .catalog-quality-list-row {
    grid-template-columns: 38px minmax(100px, .7fr) minmax(0, 2fr) minmax(90px, .65fr);
    grid-template-areas:
      "select category product details"
      "select category model details"
      "select reference issue details";
    gap: .35rem .55rem;
    align-items: start;
  }

  .catalog-quality-select-cell { grid-area: select; }
  .catalog-quality-category-cell { grid-area: category; }
  .catalog-quality-product-cell { grid-area: product; }
  .catalog-quality-model-cell { grid-area: model; }
  .catalog-quality-reference-cell { grid-area: reference; }
  .catalog-quality-issue-cell { grid-area: issue; }
  .catalog-quality-row-details { grid-area: details; }

  .catalog-quality-row-details[open] {
    grid-column: 1 / -1;
    grid-area: auto;
  }

  .catalog-quality-detail-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* -------------------------------------------------------------------------
   Phone / narrow tablet
   ------------------------------------------------------------------------- */
@media (max-width: 720px) {
  :root {
    --kma-gear-admin-gutter: 12px;
  }

  .container.page-wide.gear-master-admin-container,
  .container.page-wide.catalog-quality-container,
  .container.page-wide.catalog-official-container {
    width: calc(100% - var(--kma-gear-admin-gutter)) !important;
  }

  .gear-master-admin-actions,
  .catalog-quality-bulk-actions,
  .catalog-quality-filter-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .gear-master-admin-actions > *,
  .catalog-quality-bulk-actions > *,
  .catalog-quality-filter-actions > * {
    width: 100% !important;
    min-width: 0;
    white-space: normal;
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .catalog-official-container .gear-web-hero > .secondary {
    width: 100% !important;
    min-width: 0;
    white-space: normal;
    word-break: keep-all;
  }

  .gear-master-list-controls,
  .catalog-quality-filter-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .gear-master-list-search,
  .catalog-quality-search-label {
    grid-column: 1 / -1;
  }

  .gear-master-list-control-actions,
  .catalog-quality-filter-actions {
    grid-column: 1 / -1;
  }

  .gear-master-list-control-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .gear-master-list-control-actions > * {
    width: 100% !important;
    min-width: 0;
    white-space: normal;
    word-break: keep-all;
  }

  .catalog-quality-summary,
  .catalog-quality-category-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .catalog-quality-bulk-toolbar {
    position: static;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .catalog-quality-list-row {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    grid-template-areas:
      "select category details"
      "select product details"
      "select model details"
      "select reference details"
      "select issue details";
    padding: .65rem .55rem;
  }

  .catalog-quality-category-cell,
  .catalog-quality-reference-cell {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem .5rem;
  }

  .catalog-quality-row-details > summary {
    justify-content: flex-end;
  }

  .catalog-official-container .gear-catalog-form-grid,
  .catalog-official-container .gear-web-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* -------------------------------------------------------------------------
   Small phone
   ------------------------------------------------------------------------- */
@media (max-width: 460px) {
  .gear-master-admin-actions,
  .catalog-quality-bulk-actions,
  .catalog-quality-filter-actions,
  .gear-master-list-controls,
  .gear-master-list-control-actions,
  .catalog-quality-filter-form,
  .catalog-quality-summary,
  .catalog-quality-category-strip,
  .catalog-official-container .gear-catalog-form-grid,
  .catalog-official-container .gear-web-flow {
    grid-template-columns: minmax(0, 1fr);
  }

  .gear-master-list-search,
  .catalog-quality-search-label,
  .gear-master-list-control-actions,
  .catalog-quality-filter-actions {
    grid-column: auto;
  }

  .gear-master-admin-summary {
    grid-template-columns: minmax(0, 1fr);
  }

  .gear-master-list-summary {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "name open"
      "state state"
      "series series"
      "source source";
  }

  .gear-master-series-row-summary {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "name open"
      "state state"
      "series series";
  }
}
/* ===== END KMA CSS SOURCE: style-162r68.css ===== */

/* ===== KMA CSS SOURCE 079/101: style-163r1.css ===== */
/* KMA FISHING CLUB 1.63r1
   UX Foundation / Shared Layout System
   PROGRAM-only: no DB/schema changes.

   This layer is deliberately loaded after the accumulated 1.52-1.62 styles.
   It establishes the shared UI contract for 1.63 without deleting historical
   CSS/JS. Later 1.63 releases can migrate individual pages onto these rules,
   then 1.63r6 can remove dead/duplicate resources after regression testing.
*/

:root {
  --kma-page-normal-max: 1040px;
  --kma-page-wide-max: 1680px;
  --kma-page-gutter: 28px;
  --kma-page-gutter-mobile: 16px;

  --kma-space-1: .375rem;
  --kma-space-2: .625rem;
  --kma-space-3: .875rem;
  --kma-space-4: 1.125rem;
  --kma-space-5: 1.5rem;
  --kma-space-6: 2rem;

  --kma-control-min-height: 44px;
  --kma-card-radius: 16px;
  --kma-control-radius: 10px;
  --kma-surface: #fff;
  --kma-surface-subtle: #f8fafc;
  --kma-focus-ring: #38bdf866;
}

/* -------------------------------------------------------------------------
   1. Shared page shell
   Normal page = readable existing baseline.
   Wide page = explicit .page-wide opt-in only.
   ------------------------------------------------------------------------- */
html,
body {
  width: 100%;
  max-width: 100%;
}

.page-shell {
  width: min(var(--kma-page-normal-max), calc(100% - var(--kma-page-gutter)));
  max-width: none;
  min-width: 0;
  margin-inline: auto;
}

.page-shell.page-wide {
  width: min(var(--kma-page-wide-max), calc(100% - var(--kma-page-gutter))) !important;
  max-width: none !important;
  margin-inline: auto !important;
}

.page-shell > *,
.page-shell section,
.page-shell article,
.page-shell form,
.page-shell fieldset,
.page-shell details,
.page-shell dl,
.page-shell ul,
.page-shell ol {
  min-width: 0;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

pre,
code,
.text-link,
.url-text {
  overflow-wrap: anywhere;
}

/* Foundation aliases for pages migrated in 1.63r2-r5. */
.kma-page-normal {
  width: 100%;
  max-width: var(--kma-page-normal-max);
  margin-inline: auto;
}

.kma-page-wide {
  width: 100%;
  max-width: var(--kma-page-wide-max);
  margin-inline: auto;
}

/* -------------------------------------------------------------------------
   2. Page / section headers
   Keep existing class names compatible while defining the new shared aliases.
   ------------------------------------------------------------------------- */
.kma-page-header,
.kma-section-header,
.admin-heading,
.admin-center-heading,
.admin-section-heading,
.trip-section-heading,
.my-page-section-heading {
  min-width: 0;
}

.kma-page-header,
.admin-heading,
.admin-center-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--kma-space-3) var(--kma-space-4);
}

.kma-page-header > *,
.kma-section-header > *,
.admin-heading > *,
.admin-center-heading > *,
.admin-section-heading > *,
.trip-section-heading > *,
.my-page-section-heading > * {
  min-width: 0;
}

.page-intro h1,
.kma-page-header h1,
.kma-section-header h2,
.admin-heading h1,
.admin-center-heading h1,
.admin-section-heading h2,
.trip-section-heading h2,
.my-page-section-heading h2 {
  overflow-wrap: anywhere;
}

.kma-page-header h1,
.kma-section-header h2 {
  margin-block: 0;
  color: var(--navy);
  line-height: 1.3;
}

.kma-page-header-copy,
.kma-section-header-copy {
  min-width: 0;
  flex: 1 1 24rem;
}

.kma-page-header-actions,
.kma-section-header-actions {
  display: flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: var(--kma-space-2);
}

/* -------------------------------------------------------------------------
   3. Shared toolbar / action row contract
   Existing common action rows inherit the same wrap/min-width behavior.
   ------------------------------------------------------------------------- */
.kma-toolbar,
.form-actions,
.admin-top-actions,
.admin-footer-actions,
.ui-actions,
.notification-toolbar-actions,
.gear-primary-actions,
.gear-ledger-control-actions,
.catalog-quality-actions,
.gear-master-admin-actions,
.gear-master-admin-row-actions {
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--kma-space-2);
}

.kma-toolbar {
  display: flex;
  align-items: end;
  justify-content: space-between;
  padding: var(--kma-space-3);
  border: 1px solid var(--line);
  border-radius: var(--kma-card-radius);
  background: var(--kma-surface);
}

.kma-toolbar-group,
.kma-toolbar-actions {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: end;
  gap: var(--kma-space-2);
}

.kma-toolbar-actions {
  flex: 0 1 auto;
  justify-content: flex-end;
}

/* Avoid narrow one-character columns for Japanese action labels. */
.form-actions > button,
.form-actions > .button-link,
.admin-top-actions > button,
.admin-top-actions > .button-link,
.admin-footer-actions > button,
.admin-footer-actions > .button-link,
.ui-actions > button,
.ui-actions > .ui-button,
.kma-toolbar-actions > button,
.kma-toolbar-actions > a {
  min-width: min(8.5rem, 100%);
}

/* -------------------------------------------------------------------------
   4. Shared button contract
   Preserve existing color semantics; normalize geometry, text and focus.
   ------------------------------------------------------------------------- */
.primary,
.secondary,
.danger,
.button-link,
.ui-button,
.kma-button {
  max-width: 100%;
  min-height: var(--kma-control-min-height);
  line-height: 1.3;
  text-align: center;
  word-break: normal;
  overflow-wrap: normal;
  line-break: strict;
}

button.primary,
button.secondary,
button.danger,
a.button-link,
button.ui-button,
a.ui-button,
.kma-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
}

.primary:focus-visible,
.secondary:focus-visible,
.danger:focus-visible,
.button-link:focus-visible,
.ui-button:focus-visible,
.kma-button:focus-visible,
.back-link:focus-visible {
  outline: 3px solid var(--kma-focus-ring);
  outline-offset: 2px;
}

.kma-button {
  padding: .68rem 1rem;
  border-radius: var(--kma-control-radius);
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
}

.kma-button-primary {
  color: #fff;
  background: var(--blue);
  border: 1px solid var(--blue);
}

.kma-button-secondary {
  color: var(--blue);
  background: #fff;
  border: 1px solid #7dd3fc;
}

.kma-button-danger {
  color: var(--red);
  background: #fff;
  border: 1px solid #fecaca;
}

/* -------------------------------------------------------------------------
   5. Form contract
   Existing form-card remains a normal-width content card; wide data pages
   may explicitly override it as they already do.
   ------------------------------------------------------------------------- */
.form-card,
.kma-form-card {
  min-width: 0;
  max-width: 760px;
  border-radius: var(--kma-card-radius);
}

.kma-form-card {
  width: 100%;
  margin-inline: auto;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--line);
  background: var(--kma-surface);
}

.admin-form,
.kma-form {
  min-width: 0;
}

.admin-form input:not([type="checkbox"]):not([type="radio"]),
.admin-form select,
.admin-form textarea,
.form-card input:not([type="checkbox"]):not([type="radio"]),
.form-card select,
.form-card textarea,
.kma-form input:not([type="checkbox"]):not([type="radio"]),
.kma-form select,
.kma-form textarea {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.admin-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.admin-form select,
.form-card input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-card select,
.kma-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.kma-form select {
  min-height: var(--kma-control-min-height);
}

.admin-form input:focus-visible,
.admin-form select:focus-visible,
.admin-form textarea:focus-visible,
.form-card input:focus-visible,
.form-card select:focus-visible,
.form-card textarea:focus-visible,
.kma-form input:focus-visible,
.kma-form select:focus-visible,
.kma-form textarea:focus-visible {
  outline: 3px solid var(--kma-focus-ring);
  outline-offset: 1px;
}

/* -------------------------------------------------------------------------
   6. Compact list contract
   Generic aliases for later page migration, while keeping current admin lists
   compatible and non-overflowing.
   ------------------------------------------------------------------------- */
.kma-compact-list {
  display: grid;
  gap: .625rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.kma-compact-row,
.admin-list article {
  min-width: 0;
}

.kma-compact-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--kma-space-3);
  padding: .8rem .9rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--kma-surface);
}

.kma-compact-row-main,
.kma-compact-row-actions {
  min-width: 0;
}

.kma-compact-row-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--kma-space-1);
}

/* -------------------------------------------------------------------------
   7. Empty / error / status states
   .empty keeps its existing lightweight meaning; new shared state components
   are available for progressive migration.
   ------------------------------------------------------------------------- */
.empty {
  min-width: 0;
  overflow-wrap: anywhere;
}

.kma-state,
.kma-empty-state,
.kma-error-state {
  min-width: 0;
  padding: 1rem 1.125rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--kma-surface-subtle);
}

.kma-state > :first-child,
.kma-empty-state > :first-child,
.kma-error-state > :first-child {
  margin-top: 0;
}

.kma-state > :last-child,
.kma-empty-state > :last-child,
.kma-error-state > :last-child {
  margin-bottom: 0;
}

.kma-empty-state {
  color: var(--muted);
}

.kma-error-state {
  color: #991b1b;
  border-color: #fecaca;
  background: #fff7f7;
}

/* -------------------------------------------------------------------------
   8. Back navigation
   ------------------------------------------------------------------------- */
.back-link,
.kma-back-link {
  min-height: var(--kma-control-min-height);
  max-width: 100%;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding-block: .4rem;
  color: var(--blue);
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.kma-back-link::before {
  content: "←";
  flex: none;
}

/* -------------------------------------------------------------------------
   9. Responsive contract
   Normal and wide pages become the same safe 100%-width shell on mobile.
   Toolbars stack naturally; controls stay tappable without horizontal scroll.
   ------------------------------------------------------------------------- */
@media (max-width: 760px) {
  .page-shell,
  .page-shell.page-wide {
    width: 100% !important;
    max-width: none !important;
    padding: 24px calc(var(--kma-page-gutter-mobile) / 2) 38px;
  }

  .kma-page-header,
  .admin-heading,
  .admin-center-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .kma-page-header-actions,
  .kma-section-header-actions,
  .kma-toolbar-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .kma-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .kma-toolbar-group,
  .kma-toolbar-actions {
    width: 100%;
  }

  .kma-compact-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .kma-compact-row-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 520px) {
  .page-shell,
  .page-shell.page-wide {
    width: 100% !important;
  }

  .form-card,
  .kma-form-card,
  .ui-card,
  .trip-card {
    max-width: 100%;
  }

  .form-actions,
  .admin-top-actions,
  .admin-footer-actions,
  .ui-actions,
  .kma-page-header-actions,
  .kma-section-header-actions,
  .kma-toolbar-actions {
    width: 100%;
  }

  .form-actions > button,
  .form-actions > .button-link,
  .admin-top-actions > button,
  .admin-top-actions > .button-link,
  .admin-footer-actions > button,
  .admin-footer-actions > .button-link,
  .ui-actions > button,
  .ui-actions > .ui-button,
  .kma-page-header-actions > *,
  .kma-section-header-actions > *,
  .kma-toolbar-actions > * {
    width: 100%;
    min-width: 0;
  }

  .primary,
  .secondary,
  .danger,
  .button-link,
  .ui-button,
  .kma-button {
    word-break: keep-all;
    overflow-wrap: normal;
  }

  .kma-compact-row-actions > * {
    flex: 1 1 100%;
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-163r1.css ===== */

/* ===== KMA CSS SOURCE 080/101: style-163r3.css ===== */
/* KMA FISHING CLUB 1.63r3
   Trip UX / Shared Full Trip Editor
   Loaded after the 1.63r1 foundation. No legacy rules are removed here. */

.trip-editor-page {
  width: min(100%, 980px);
  margin-inline: auto;
}

.trip-editor-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}

.trip-editor-header h1 {
  margin-bottom: 6px;
}

.trip-editor-lead {
  margin: 0;
  color: var(--muted, #666);
}

.trip-editor-back {
  flex: 0 0 auto;
}

.trip-full-edit-form {
  display: grid;
  gap: 18px;
}

.trip-edit-section {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid rgba(0, 0, 0, 0.09);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
}

.trip-edit-section-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.trip-edit-section-heading h2 {
  margin: 0 0 3px;
  font-size: 1.12rem;
}

.trip-edit-section-heading p {
  margin: 0;
  color: var(--muted, #666);
  line-height: 1.55;
}

.trip-edit-step {
  display: inline-grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  font-weight: 700;
  background: rgba(255, 122, 0, 0.12);
  color: #a34c00;
}

.trip-edit-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 16px;
}

.trip-edit-span-all {
  grid-column: 1 / -1;
}

.trip-full-edit-form label {
  min-width: 0;
}

.trip-full-edit-form input,
.trip-full-edit-form textarea,
.trip-full-edit-form select {
  width: 100%;
  max-width: 100%;
}

.trip-weather-easy-action {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 12px;
  border-radius: 12px;
  background: rgba(255, 122, 0, 0.06);
}

.trip-weather-easy-action p {
  margin: 0;
  flex: 1 1 240px;
  color: var(--muted, #666);
  line-height: 1.5;
}

.trip-edit-advanced {
  border: 1px solid rgba(0, 0, 0, 0.09);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.72);
}

.trip-edit-advanced summary {
  cursor: pointer;
  padding: 12px 14px;
  font-weight: 700;
  list-style-position: inside;
}

.trip-edit-advanced-body {
  display: grid;
  gap: 12px;
  padding: 0 14px 14px;
}

.trip-edit-current-file {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.035);
}

.trip-edit-current-file span {
  font-weight: 700;
}

.trip-editor-save-actions {
  position: sticky;
  bottom: 8px;
  z-index: 3;
  padding: 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.10);
  backdrop-filter: blur(8px);
}

.trip-editor-save-actions > * {
  min-width: 150px;
}

.trip-full-edit-form .trip-target-editor {
  margin: 0;
}

.trip-full-edit-form .weather-coordinate-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

@media (max-width: 720px) {
  .trip-editor-page {
    width: 100%;
  }

  .trip-editor-header {
    display: grid;
    grid-template-columns: 1fr;
  }

  .trip-editor-back {
    justify-self: start;
  }

  .trip-edit-section {
    padding: 14px;
    border-radius: 14px;
  }

  .trip-edit-grid {
    grid-template-columns: 1fr;
  }

  .trip-edit-span-all {
    grid-column: auto;
  }

  .trip-weather-easy-action {
    align-items: stretch;
  }

  .trip-weather-easy-action .map-coordinate-button {
    width: 100%;
  }

  .trip-editor-save-actions {
    display: grid;
    grid-template-columns: 1fr 1.35fr;
    gap: 8px;
  }

  .trip-editor-save-actions > * {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 430px) {
  .trip-editor-save-actions {
    grid-template-columns: 1fr;
  }
}
/* ===== END KMA CSS SOURCE: style-163r3.css ===== */

/* ===== KMA CSS SOURCE 081/101: style-163r5.css ===== */
/* KMA FISHING CLUB 1.63r5
   Trip application deadline UI.
   Additive UX layer loaded after 1.63r3; no legacy rules are removed. */

.trip-application-deadline {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 5px 9px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  color: #475569;
  background: #f8fafc;
  font-size: .76rem;
  font-weight: 900;
  line-height: 1.25;
  white-space: nowrap;
  overflow-wrap: normal;
}

.trip-application-deadline-open {
  border-color: #86efac;
  color: #166534;
  background: #f0fdf4;
}

.trip-application-deadline-today {
  border-color: #fbbf24;
  color: #92400e;
  background: #fffbeb;
}

.trip-application-deadline-closed {
  border-color: #fca5a5;
  color: #991b1b;
  background: #fef2f2;
}

.trip-application-deadline-undecided {
  color: #64748b;
  background: #f8fafc;
}

.home-next-trip-fact.fact-primary .trip-application-deadline {
  font-size: .70rem;
}

.trip-deadline-contact-note {
  display: block;
  margin: 0 0 7px;
  padding: 8px 10px;
  border-left: 4px solid #dc2626;
  border-radius: 8px;
  color: #7f1d1d;
  background: #fef2f2;
  font-weight: 800;
  white-space: normal;
}

.trip-detail-empty {
  color: #94a3b8;
}

@media (max-width: 600px) {
  .trip-title-line .trip-application-deadline {
    flex-basis: auto;
  }

  .home-next-trip-fact.fact-primary dd {
    align-items: flex-start;
  }

  .home-next-trip-fact.fact-primary .trip-application-deadline {
    width: fit-content;
  }
}
/* ===== END KMA CSS SOURCE: style-163r5.css ===== */

/* ===== KMA CSS SOURCE 082/101: style-163r6.css ===== */
/* KMA FISHING CLUB 1.63r6
   Trip Gear UX simplification:
   one preparation/actual editor, compact status, rig prepared/used quantities.
*/

.trip-gear-summary-grid {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.trip-gear-editor.is-used {
  border-color: #cfe9da;
}

.trip-gear-rig-qty-pair {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
}

.trip-gear-rig-qty-item {
  display: grid;
  grid-template-columns: auto 58px auto;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}

.trip-gear-rig-qty-item > span {
  font-weight: 800;
}

.trip-gear-rig-qty-item input {
  width: 58px;
  min-width: 0;
  padding: 7px 5px;
  text-align: center;
}

.trip-gear-rig-qty-item small {
  color: #667589;
}

.trip-gear-history-compact {
  padding: 16px 18px;
}

.trip-gear-history-compact > summary {
  cursor: pointer;
  font-weight: 900;
  color: #075f88;
  list-style-position: outside;
}

.trip-gear-history-compact[open] > summary {
  margin-bottom: 12px;
}

.trip-gear-history-note {
  margin: 0 0 12px;
  color: #68778b;
  font-size: .9rem;
}

@media (max-width: 760px) {
  .trip-gear-summary-grid {
    grid-template-columns: 1fr;
  }

  .trip-gear-rig-qty-pair {
    grid-column: 2;
    justify-self: start;
  }

  .trip-gear-rig-qty-item {
    grid-template-columns: auto 54px auto;
  }

  .trip-gear-rig-qty-item input {
    width: 54px;
  }

  .trip-gear-history-qty {
    white-space: normal;
    text-align: right;
  }
}

@media (max-width: 460px) {
  .trip-gear-rig-qty-pair {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
  }

  .trip-gear-history-qty {
    text-align: left;
  }
}
/* ===== END KMA CSS SOURCE: style-163r6.css ===== */

/* ===== KMA CSS SOURCE 083/101: style-163r7.css ===== */
/* KMA FISHING CLUB 1.63r7 — Notification Read UX */

.notification-read-toolbar {
  margin: 0 0 14px;
  padding: 12px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.notification-read-toolbar-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.notification-read-toolbar-copy strong {
  color: var(--navy);
  font-size: .9rem;
}

.notification-read-toolbar-copy span {
  color: #64748b;
  font-size: .8rem;
  line-height: 1.4;
}

.notification-read-toolbar-copy b {
  color: #0f172a;
}

.notification-read-toolbar-actions {
  min-width: 0;
  display: flex;
  flex: 0 1 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.notification-read-toolbar-actions form {
  margin: 0;
}

.notification-read-toolbar-actions .ui-button {
  min-height: 44px;
}

.notification-read-toolbar-actions button:disabled {
  cursor: not-allowed;
  opacity: .52;
}

.notification-card.has-read-selection {
  position: relative;
}

.notification-card.has-read-selection .notification-card-link {
  padding-left: 72px;
}

.notification-read-select {
  position: absolute;
  z-index: 2;
  top: 10px;
  left: 8px;
  width: 54px;
  min-height: 52px;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 2px;
  border-radius: 10px;
  color: #475569;
  cursor: pointer;
  font-size: .68rem;
  font-weight: 800;
  line-height: 1.15;
}

.notification-read-select:hover {
  background: #f1f5f9;
}

.notification-read-select:focus-within {
  outline: 2px solid #0284c7;
  outline-offset: 1px;
}

.notification-read-select input {
  width: 22px;
  height: 22px;
  margin: 0;
  accent-color: #0284c7;
}

@media (max-width: 640px) {
  .notification-read-toolbar {
    display: grid;
    align-items: stretch;
  }

  .notification-read-toolbar-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .notification-read-toolbar-actions form,
  .notification-read-toolbar-actions .ui-button {
    width: 100%;
    min-width: 0;
  }

  .notification-card.has-read-selection .notification-card-link {
    padding-left: 68px;
  }
}

@media (max-width: 420px) {
  .notification-read-toolbar-actions {
    grid-template-columns: minmax(0, 1fr);
  }

  .notification-read-select {
    left: 6px;
    width: 50px;
  }

  .notification-card.has-read-selection .notification-card-link {
    padding-left: 62px;
  }
}
/* ===== END KMA CSS SOURCE: style-163r7.css ===== */

/* ===== KMA CSS SOURCE 084/101: style-163r8.css ===== */
/* KMA FISHING CLUB 1.63r8 — Trip Gear Compact Selector */

.trip-gear-category-stack {
  display: grid;
  min-width: 0;
  gap: 10px;
}

.trip-gear-category-panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d7e2ec;
  border-radius: 14px;
  background: #fff;
}

.trip-gear-category-panel > summary {
  position: relative;
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "main count"
    "preview preview";
  gap: 5px 12px;
  padding: 13px 42px 13px 14px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.trip-gear-category-panel > summary::-webkit-details-marker {
  display: none;
}

.trip-gear-category-panel > summary::after {
  content: "+";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #0878ad;
  font-size: 1.2rem;
  font-weight: 900;
}

.trip-gear-category-panel[open] > summary::after {
  content: "−";
}

.trip-gear-category-panel[open] > summary {
  background: #f8fbfd;
}

.trip-gear-category-summary-main {
  grid-area: main;
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 9px;
}

.trip-gear-category-summary-main strong {
  color: #16334c;
  font-size: 1rem;
}

.trip-gear-category-summary-main small {
  color: #64748b;
  font-size: .76rem;
}

.trip-gear-category-count {
  grid-area: count;
  align-self: start;
  padding: 3px 8px;
  border-radius: 999px;
  background: #eef7fb;
  color: #0878ad;
  font-size: .76rem;
  font-weight: 900;
  white-space: nowrap;
}

.trip-gear-category-preview {
  grid-area: preview;
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: 5px 6px;
}

.trip-gear-category-preview > span {
  max-width: 100%;
  padding: 3px 7px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: .78rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.trip-gear-category-preview > span.is-empty {
  background: transparent;
  padding-left: 0;
  color: #94a3b8;
}

.trip-gear-category-body {
  min-width: 0;
  padding: 12px;
  border-top: 1px solid #e2e8f0;
}

.trip-gear-category-empty,
.trip-gear-line-help {
  margin: 0;
  color: #64748b;
  line-height: 1.55;
}

.trip-gear-line-help {
  margin-bottom: 10px;
}

.trip-gear-line-list {
  display: grid;
  gap: 7px;
}

.trip-gear-line-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}

.trip-gear-line-row.is-selected {
  border-color: #7dd3fc;
  background: #f0f9ff;
}

.trip-gear-line-state {
  padding: 2px 6px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #64748b;
  font-size: .7rem;
  font-weight: 900;
  white-space: nowrap;
}

.trip-gear-line-row.is-selected .trip-gear-line-state {
  background: #dff4fd;
  color: #03698f;
}

.trip-gear-line-row > span:last-child {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.trip-gear-line-row strong,
.trip-gear-line-row small {
  overflow-wrap: anywhere;
}

.trip-gear-line-row small {
  color: #64748b;
}

.trip-gear-category-panel.is-line-linked .trip-gear-category-count {
  background: #f1f5f9;
  color: #475569;
}

.trip-gear-category-panel.is-compatibility > summary {
  background: #fafafa;
}

@media (max-width: 640px) {
  .trip-gear-category-panel > summary {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "main"
      "count"
      "preview";
    padding-right: 40px;
  }

  .trip-gear-category-count {
    justify-self: start;
  }

  .trip-gear-category-preview > span {
    font-size: .74rem;
  }

  .trip-gear-category-body {
    padding: 9px;
  }
}
/* ===== END KMA CSS SOURCE: style-163r8.css ===== */

/* ===== KMA CSS SOURCE 085/101: style-163r8b.css ===== */
/* KMA FISHING CLUB 1.63r8b — compact Trip Gear rows */

.trip-gear-category-stack {
  gap: 6px;
}

.trip-gear-category-panel {
  border-radius: 10px;
}

.trip-gear-category-panel > summary {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "main count"
    "preview preview";
  gap: 2px 8px;
  padding: 8px 34px 8px 10px;
}

.trip-gear-category-panel > summary::after {
  right: 10px;
  font-size: 1rem;
}

.trip-gear-category-summary-main {
  gap: 3px 7px;
}

.trip-gear-category-summary-main strong {
  font-size: .92rem;
  line-height: 1.25;
}

.trip-gear-category-summary-main small {
  font-size: .68rem;
  line-height: 1.2;
}

.trip-gear-category-count {
  align-self: center;
  padding: 2px 6px;
  font-size: .68rem;
  line-height: 1.2;
}

.trip-gear-category-preview {
  gap: 3px 4px;
}

.trip-gear-category-preview > span {
  padding: 1px 5px;
  font-size: .7rem;
  line-height: 1.2;
}

/* "未選択" is already shown in the count badge, so do not spend another row on it. */
.trip-gear-category-preview > span.is-empty {
  display: none;
}

.trip-gear-category-body {
  padding: 9px 10px;
}

@media (max-width: 700px) {
  .trip-gear-category-stack {
    gap: 5px;
  }

  .trip-gear-category-panel > summary {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "main count"
      "preview preview";
    gap: 2px 6px;
    padding: 7px 32px 7px 9px;
  }

  /* On narrow/zoomed views the action hint caused a third visual line. */
  .trip-gear-category-summary-main small {
    display: none;
  }

  .trip-gear-category-preview {
    flex-wrap: nowrap;
    overflow: hidden;
  }

  .trip-gear-category-preview > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* Count remains visible; one selected name is enough in the collapsed row. */
  .trip-gear-category-preview > span:nth-child(n+2) {
    display: none;
  }

  .trip-gear-category-body {
    padding: 8px;
  }
}
/* ===== END KMA CSS SOURCE: style-163r8b.css ===== */

/* ===== KMA CSS SOURCE 086/101: style-164r2.css ===== */
/* 1.64r2 Message Inbox / Sent / Send / Detail */
.message-intro { margin-bottom: 1rem; }
.message-note { color: var(--muted, #64748b); font-size: .94rem; }
.message-secondary-link { color: #0b6fa4; font-weight: 700; text-decoration: none; }
.message-tabs { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; margin: 0 0 1rem; }
.message-tab { display: inline-flex; align-items: center; gap: .35rem; min-height: 42px; padding: .55rem .8rem; border: 1px solid #c9d8e5; border-radius: 12px; text-decoration: none; color: #17324a; background: #fff; font-weight: 800; }
.message-tab.is-active { background: #eaf7ff; border-color: #7fc8ef; color: #075f91; }
.message-tab span { display: inline-grid; place-items: center; min-width: 1.55rem; min-height: 1.55rem; padding: 0 .35rem; border-radius: 999px; background: #0b78ad; color: white; font-size: .8rem; }
.message-primary-button { background: #0b78ad; color: white; border-color: #0b78ad; }
.message-list { display: grid; gap: .7rem; }
.message-card { padding: 0; overflow: hidden; }
.message-card.is-unread { border-color: #6abce8; box-shadow: inset 4px 0 0 #0b78ad; }
.message-card-link { display: block; padding: .85rem 1rem; color: inherit; text-decoration: none; }
.message-card-topline { display: flex; justify-content: space-between; gap: .75rem; color: #64748b; font-size: .88rem; }
.message-card-topline strong { color: #17324a; }
.message-card-subject-row { display: flex; align-items: center; gap: .55rem; margin-top: .35rem; }
.message-card-subject-row h2 { margin: 0; font-size: 1.05rem; color: #122f46; }
.message-unread-dot { width: .58rem; height: .58rem; flex: 0 0 auto; border-radius: 50%; background: #0b78ad; }
.message-unread-badge { margin-left: auto; font-size: .78rem; font-weight: 800; color: #0b78ad; background: #eaf7ff; border-radius: 999px; padding: .18rem .5rem; }
.message-card-preview { margin: .45rem 0 0; color: #536579; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: pre-line; }
.message-empty-card { padding: 1rem; }
.message-detail-actions { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; margin-bottom: .9rem; }
.message-detail-card { padding: 1rem; }
.message-meta { margin: 0 0 1rem; display: grid; gap: .45rem; }
.message-meta > div { display: grid; grid-template-columns: 6rem 1fr; gap: .5rem; }
.message-meta dt { font-weight: 800; color: #526579; }
.message-meta dd { margin: 0; }
.message-body { border-top: 1px solid #dde6ee; padding-top: 1rem; white-space: pre-wrap; line-height: 1.75; overflow-wrap: anywhere; }
.message-recipient-card { margin-top: .9rem; padding: 1rem; }
.message-recipient-card h2 { margin-top: 0; font-size: 1rem; }
.message-recipient-list { display: grid; gap: .4rem; }
.message-recipient-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .5rem .65rem; border-radius: 10px; background: #f7fafc; }
.message-recipient-row small { color: #64748b; }
.message-read-state { font-size: .8rem; font-weight: 800; color: #8a5b16; }
.message-read-state.is-read { color: #18734d; }
.message-send-form { max-width: 900px; }
.message-send-summary { margin: 1rem 0; padding: .85rem; border: 1px solid #d7e2eb; border-radius: 12px; background: #f8fbfd; }
.message-send-summary h2 { margin: 0 0 .55rem; font-size: 1rem; }
.message-send-summary dl { margin: 0; display: grid; gap: .35rem; }
.message-send-summary dl > div { display: grid; grid-template-columns: 5rem 1fr; gap: .5rem; }
.message-send-summary dt { font-weight: 800; }
.message-send-summary dd { margin: 0; }
#message-send-guidance { margin: .65rem 0 0; color: #64748b; }
@media (max-width: 640px) {
  .message-card-topline { align-items: flex-start; flex-direction: column; gap: .15rem; }
  .message-meta > div { grid-template-columns: 1fr; gap: .15rem; }
  .message-recipient-row { align-items: flex-start; }
  .message-tabs .message-primary-button { width: 100%; justify-content: center; }
}
/* ===== END KMA CSS SOURCE: style-164r2.css ===== */

/* ===== KMA CSS SOURCE 087/101: style-164r3.css ===== */
/* 1.64r3 Home Message Entry + Message recipient admin scope */
.home-message-game-strip {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 9px;
  margin: 0 0 9px;
}
.home-message-game-strip .game-launch-card {
  min-width: 0;
  height: 100%;
  margin: 0;
}
.home-message-launch {
  min-width: 0;
  min-height: 38px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 4px 7px;
  border: 1px solid #bae6fd;
  border-radius: 9px;
  background: linear-gradient(90deg, rgba(240, 249, 255, .98), rgba(248, 250, 252, .98));
  color: #0c4a6e;
  text-decoration: none;
  box-shadow: inset 3px 0 0 rgba(14, 165, 233, .26);
}
.home-message-launch:hover,
.home-message-launch:focus-visible {
  background: linear-gradient(90deg, rgba(224, 242, 254, .98), rgba(248, 250, 252, 1));
  border-color: #7dd3fc;
}
.home-message-launch-mark {
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 7px;
  background: #e0f2fe;
  font-size: .75rem;
}
.home-message-launch-copy {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.home-message-launch-copy strong {
  color: #0c4a6e;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .04em;
  white-space: nowrap;
}
.home-message-launch-copy small {
  overflow: hidden;
  color: #0e7490;
  font-size: .58rem;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.home-message-unread {
  flex: 0 0 auto;
  margin-left: auto;
  padding: 1px 6px;
  border-radius: 999px;
  background: #0b78ad;
  color: #fff;
  font-size: .58rem;
  font-weight: 900;
  white-space: nowrap;
}
.home-message-unread.is-zero {
  background: #e2e8f0;
  color: #64748b;
}
.home-message-open {
  flex: 0 0 auto;
  padding: 2px 6px;
  border: 1px solid #7dd3fc;
  border-radius: 7px;
  background: rgba(255,255,255,.86);
  color: #075985;
  font-size: .61rem;
  font-weight: 900;
  white-space: nowrap;
}
@media (max-width: 620px) {
  .home-message-game-strip {
    grid-template-columns: 1fr;
    gap: 6px;
    margin-bottom: 8px;
  }
  .home-message-launch {
    min-height: 34px;
    padding: 4px 6px;
  }
  .home-message-launch-copy strong { font-size: .68rem; }
  .home-message-launch-copy small { font-size: .56rem; }
}
@media (max-width: 390px) {
  .home-message-launch-copy small { display: none; }
}
/* ===== END KMA CSS SOURCE: style-164r3.css ===== */

/* ===== KMA CSS SOURCE 088/101: style-164r5.css ===== */
/* 1.64r5 Home Message / Game vertical order */
.home-message-game-strip {
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
}
.home-message-game-strip .home-message-launch,
.home-message-game-strip .game-launch-card {
  width: 100%;
}
/* ===== END KMA CSS SOURCE: style-164r5.css ===== */

/* ===== KMA CSS SOURCE 089/101: style-164r6.css ===== */
/* 1.64r6 Home GAME placement after Important Notices */
.home-game-after-notices-wrap {
  min-width: 0;
}
.home-game-after-notices-wrap .home-game-after-notices {
  width: 100%;
  margin: 0;
}
/* ===== END KMA CSS SOURCE: style-164r6.css ===== */

/* ===== KMA CSS SOURCE 090/101: style-164r7.css ===== */
/* KMA FISHING CLUB 1.64r7 - Admin per-account Push preference control */
.admin-push-heading {
  align-items: flex-start;
}

.admin-push-account-card,
.admin-push-target-card {
  margin-bottom: 18px;
}

.admin-push-account-selector {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
}

.admin-push-account-selector label {
  margin: 0;
}

.admin-push-account-selector select {
  width: 100%;
}

.admin-push-target-card h2 {
  margin: 4px 0 12px;
}

.admin-push-target-meta {
  margin-bottom: 0;
}

.admin-push-settings-form {
  margin-top: 0;
}

.admin-push-save-actions {
  position: sticky;
  bottom: 10px;
  z-index: 5;
  padding: 10px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--surface, #fff) 92%, transparent);
  backdrop-filter: blur(8px);
}

.account-push-edit {
  white-space: nowrap;
}

@media (max-width: 720px) {
  .admin-push-account-selector {
    grid-template-columns: 1fr;
  }

  .admin-push-account-selector button,
  .admin-push-save-actions .ui-button {
    width: 100%;
  }

  .admin-push-save-actions {
    bottom: 6px;
  }
}
/* ===== END KMA CSS SOURCE: style-164r7.css ===== */

/* ===== KMA CSS SOURCE 091/101: style-164r9.css ===== */
/* 1.64r9 Message mailbox search / sort / safe mailbox deletion */
.message-list-tools { margin: 0 0 .8rem; padding: .75rem; }
.message-filter-form { display: grid; grid-template-columns: minmax(16rem, 1fr) minmax(10rem, 14rem) auto auto; gap: .6rem; align-items: end; }
.message-filter-form label { display: grid; gap: .3rem; font-weight: 800; color: #334b61; }
.message-filter-form input,
.message-filter-form select { min-height: 42px; width: 100%; }
.message-filter-reset { align-self: center; color: #0b6fa4; font-weight: 800; text-decoration: none; white-space: nowrap; }
.message-mailbox-form { display: grid; gap: .65rem; }
.message-bulk-toolbar { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; padding: .55rem .7rem; border: 1px solid #d9e4ed; border-radius: 12px; background: #f8fbfd; }
.message-select-all { display: inline-flex; align-items: center; gap: .35rem; font-weight: 800; }
.message-bulk-toolbar [data-message-selected-count] { color: #64748b; font-weight: 700; }
.message-bulk-toolbar button { margin-left: auto; }
.message-card { position: relative; display: grid; grid-template-columns: 2.9rem minmax(0, 1fr); }
.message-card-link { min-width: 0; }
.message-select-box { display: grid; place-items: start center; padding: 1rem .2rem 0 .65rem; border-right: 1px solid #edf2f6; background: #fbfdff; }
.message-select-box input { width: 1.15rem; height: 1.15rem; margin: 0; }
.message-card-recipients { margin: .35rem 0 0; color: #526579; font-size: .86rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.message-delete-all-form { display: flex; justify-content: flex-end; margin-top: .9rem; padding-top: .8rem; border-top: 1px solid #e2e8f0; }
.message-delete-all-form .danger { border-color: #d9a0a0; background: #fff7f7; color: #a12626; }
@media (max-width: 760px) {
  .message-filter-form { grid-template-columns: 1fr; }
  .message-filter-reset { justify-self: start; }
  .message-bulk-toolbar button { margin-left: 0; width: 100%; }
  .message-card { grid-template-columns: 2.6rem minmax(0, 1fr); }
  .message-select-box { padding-left: .5rem; }
  .message-delete-all-form .danger { width: 100%; }
}
.message-result-count { margin: 0 0 .55rem; color: #64748b; font-size: .88rem; font-weight: 700; }
/* ===== END KMA CSS SOURCE: style-164r9.css ===== */

/* ===== KMA CSS SOURCE 092/101: style-164r11.css ===== */

/* 1.64r11: smartphone app install guidance UX */
.session-action-stack {
  display: grid;
  justify-items: end;
  gap: 1px;
}

.header-app-install-link {
  color: #dff4ff;
  font-size: .66rem;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: underline;
  text-underline-offset: 2px;
  white-space: nowrap;
}

.header-app-install-link:hover,
.header-app-install-link:focus-visible {
  color: #ffffff;
}

.smartphone-install-promo {
  margin: 0 0 18px;
  padding: 16px 18px;
  border: 2px solid #38bdf8;
  border-radius: 18px;
  background: linear-gradient(135deg, #e0f2fe, #f0f9ff 56%, #ffffff);
  box-shadow: 0 10px 26px rgba(7, 89, 133, .14);
}

.smartphone-install-promo-copy {
  display: grid;
  gap: 5px;
}

.smartphone-install-promo-copy strong {
  color: #0c4a6e;
  font-size: 1.06rem;
  line-height: 1.35;
}

.smartphone-install-promo-copy span {
  color: #334155;
  font-size: .9rem;
  line-height: 1.6;
}

.smartphone-install-promo-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.smartphone-install-promo-actions .primary,
.smartphone-install-promo-actions .secondary {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.app-install-guide {
  max-width: 900px;
  margin-inline: auto;
}

.app-install-hero {
  padding: 20px;
  border: 2px solid #38bdf8;
  border-radius: 20px;
  background: linear-gradient(135deg, #e0f2fe, #ffffff 68%);
}

.app-install-kicker {
  display: inline-block;
  margin-bottom: 6px;
  color: #0369a1;
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .14em;
}

.app-install-hero h1 {
  margin-top: 0;
}

.app-install-hero #pwa-install-status {
  margin: 14px 0 10px;
  padding: 10px 12px;
  border-radius: 12px;
  color: #0c4a6e;
  background: #ffffffcc;
  font-weight: 800;
}

.app-install-hero #pwa-install-button {
  width: min(100%, 420px);
  min-height: 50px;
  font-size: 1rem;
  font-weight: 900;
}

.app-install-platform-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.app-install-platform {
  padding: 16px;
  border: 1px solid #cbd5e1;
  border-radius: 16px;
  background: #ffffff;
}

.app-install-platform.is-current-platform {
  border: 2px solid #0ea5e9;
  box-shadow: 0 8px 22px rgba(14, 165, 233, .12);
}

.app-install-platform h2 {
  margin-top: 0;
}

.app-install-platform ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: kma-install-step;
  display: grid;
  gap: 9px;
}

.app-install-platform li {
  counter-increment: kma-install-step;
  position: relative;
  min-height: 48px;
  padding: 10px 10px 10px 48px;
  border-radius: 12px;
  background: #f8fafc;
  line-height: 1.55;
}

.app-install-platform li::before {
  content: counter(kma-install-step);
  position: absolute;
  left: 10px;
  top: 9px;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: #ffffff;
  background: #0284c7;
  font-weight: 900;
}

.app-install-push-link {
  margin-top: 16px;
}

.app-install-push-link .secondary {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  text-decoration: none;
}

.app-install-details {
  margin-top: 18px;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  background: #f8fafc;
}

.app-install-details summary {
  cursor: pointer;
  padding: 14px 16px;
  color: #075985;
  font-weight: 900;
}

.app-install-details-body {
  padding: 0 16px 16px;
}

@media (max-width: 700px) {
  .header-app-install-link {
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .62rem;
  }

  .smartphone-install-promo {
    padding: 14px;
    border-radius: 15px;
  }

  .smartphone-install-promo-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .app-install-hero {
    padding: 16px;
  }

  .app-install-platform-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .smartphone-install-promo-actions {
    grid-template-columns: 1fr;
  }

  .smartphone-install-promo-actions .primary,
  .smartphone-install-promo-actions .secondary {
    width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-164r11.css ===== */

/* ===== KMA CSS SOURCE 093/101: style-164r12.css ===== */
/* 1.64r12: smartphone setup screen cleanup */

.smartphone-notification-status-card {
  margin-top: 18px;
  padding: 16px 18px;
  border: 1px solid #bae6fd;
  border-radius: 16px;
  background: #f0f9ff;
}

.smartphone-notification-status-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.smartphone-notification-status-heading h2 {
  margin: 0;
}

.smartphone-notification-state {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid #94a3b8;
  border-radius: 999px;
  background: #ffffff;
  color: #334155;
  font-size: .82rem;
  line-height: 1.2;
}

.smartphone-notification-state.is-active {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.smartphone-notification-state.is-attention {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.smartphone-notification-state.is-blocked {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.smartphone-notification-note,
.app-install-platform-lead,
.app-install-platform-note,
.app-install-common-note,
.android-pwa-install-result {
  color: #475569;
  line-height: 1.6;
}

.app-install-platform-lead {
  margin: -2px 0 12px;
}

.app-install-platform-note {
  margin: 12px 0 0;
}

.android-pwa-install-button {
  width: 100%;
  min-height: 50px;
  margin: 0 0 12px;
  font-size: 1rem;
  font-weight: 900;
}

.android-pwa-install-result:empty {
  display: none;
}

.app-install-common-note {
  margin-top: 14px;
}

@media (max-width: 600px) {
  .smartphone-notification-status-heading {
    display: grid;
  }

  .smartphone-notification-state {
    justify-self: start;
  }
}
/* ===== END KMA CSS SOURCE: style-164r12.css ===== */

/* ===== KMA CSS SOURCE 094/101: style-164r13.css ===== */
/* 1.64r13: user-facing Push setup UX */

.smartphone-push-setup-card {
  border-color: #bae6fd;
  background: #f8fcff;
}

.smartphone-notification-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
}

.smartphone-notification-actions .primary,
.smartphone-notification-actions .secondary,
.smartphone-notification-actions .ui-button {
  min-height: 44px;
}

.smartphone-notification-action-result {
  min-height: 1.4em;
  margin: 10px 0 0;
  color: #334155;
  font-weight: 700;
  line-height: 1.5;
}

.smartphone-notification-action-result:empty {
  min-height: 0;
  margin: 0;
}

.smartphone-push-install-hint {
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: #fffbeb;
  color: #92400e;
  line-height: 1.5;
}

.smartphone-push-technical-details {
  margin-top: 14px;
  border-top: 1px solid #dbeafe;
  padding-top: 12px;
}

.smartphone-push-technical-details > summary {
  cursor: pointer;
  font-weight: 800;
  color: #334155;
}

.smartphone-push-technical-body {
  margin-top: 10px;
}

.smartphone-push-technical-list {
  display: grid;
  grid-template-columns: minmax(7em, auto) 1fr;
  gap: 6px 12px;
  margin: 12px 0;
}

.smartphone-push-technical-list dt {
  font-weight: 800;
  color: #475569;
}

.smartphone-push-technical-list dd {
  margin: 0;
  color: #334155;
}

@media (max-width: 600px) {
  .smartphone-notification-actions {
    display: grid;
  }

  .smartphone-notification-actions .primary,
  .smartphone-notification-actions .secondary,
  .smartphone-notification-actions .ui-button {
    width: 100%;
  }

  .smartphone-push-technical-list {
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .smartphone-push-technical-list dd {
    margin-bottom: 8px;
  }
}
/* ===== END KMA CSS SOURCE: style-164r13.css ===== */

/* ===== KMA CSS SOURCE 095/101: style-164r15.css ===== */
/* 1.64r15 Back Navigation Foundation */
.navigation-page-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 14px;
}

.navigation-back-link {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 7px 11px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #ffffff;
  color: #334155;
  font-weight: 800;
  line-height: 1.25;
  text-decoration: none;
}

.navigation-back-link:hover,
.navigation-back-link:focus-visible {
  border-color: #94a3b8;
  background: #f8fafc;
  color: #0f172a;
}

@media (max-width: 600px) {
  .navigation-page-bar {
    margin-bottom: 12px;
  }

  .navigation-back-link {
    min-height: 44px;
    max-width: 100%;
  }
}
/* ===== END KMA CSS SOURCE: style-164r15.css ===== */

/* ===== KMA CSS SOURCE 096/101: style-165r1.css ===== */
/* KMA FISHING CLUB 1.65r1 — Gear Catalog multi-select -> My Gear */

.gear-bulk-add-item {
  display: grid;
  gap: 0.2rem;
  padding: 0.8rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fff;
}

.gear-bulk-add-item + .gear-bulk-add-item {
  margin-top: 0.5rem;
}

.gear-bulk-add-meta {
  display: block;
  color: #64748b;
  line-height: 1.4;
}

.gear-bulk-add-favorite {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  margin-top: 0.8rem;
}

@media (max-width: 720px) {
  .gear-db-manage-actions [data-gear-bulk-add] {
    grid-column: 1 / -1;
  }
}
/* ===== END KMA CSS SOURCE: style-165r1.css ===== */

/* ===== KMA CSS SOURCE 097/101: style-165r3.css ===== */
/* 1.65r3 - Catalog Import DB field mapping preview */
.catalog-import-db-preview-guide {
  margin: .7rem 0 .85rem;
  padding: .75rem .85rem;
  border: 1px solid rgba(37, 99, 235, .2);
  border-radius: 12px;
  background: #eff6ff;
}

.catalog-import-db-preview-guide strong {
  display: block;
  color: #1e3a8a;
}

.catalog-import-db-preview-guide p {
  margin: .3rem 0 0;
  color: #475569;
}

.catalog-import-rig-table {
  min-width: 1500px;
}

.catalog-import-rig-table thead th small {
  display: block;
  margin-top: .18rem;
  color: #64748b;
  font-size: .65rem;
  font-weight: 600;
  text-transform: none;
  white-space: normal;
}

.catalog-import-rig-table tbody tr.is-registered {
  background: #f8fafc;
}

.catalog-import-rig-product-cell .catalog-import-state {
  width: fit-content;
  margin-top: .35rem;
}

.catalog-import-db-detail {
  margin-top: .35rem;
}

.catalog-import-db-detail > summary {
  cursor: pointer;
  color: #1d4ed8;
  font-size: .75rem;
  font-weight: 800;
}

.catalog-import-db-detail-body {
  min-width: 430px;
  margin-top: .45rem;
  padding: .65rem;
  border: 1px solid rgba(71, 85, 105, .2);
  border-radius: 10px;
  background: #fff;
}

.catalog-import-json-map {
  display: grid;
  gap: .35rem;
  margin: 0 0 .65rem;
}

.catalog-import-json-map > div {
  display: grid;
  grid-template-columns: minmax(150px, .8fr) minmax(180px, 1.2fr);
  gap: .55rem;
  padding-bottom: .3rem;
  border-bottom: 1px solid rgba(15, 23, 42, .06);
}

.catalog-import-json-map dt {
  color: #64748b;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .7rem;
  font-weight: 700;
}

.catalog-import-json-map dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.catalog-import-rig-mobile dt small {
  display: block;
  margin-top: .12rem;
  color: #94a3b8;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: .62rem;
  font-weight: 600;
}

.catalog-import-mobile-sources {
  display: grid;
  gap: .3rem;
}

.catalog-import-mobile-sources a {
  overflow-wrap: anywhere;
}

.catalog-import-other-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  margin: 1rem 0 .35rem;
}

.catalog-import-other-heading span {
  color: #64748b;
  font-size: .78rem;
}

@media (max-width: 1100px) {
  .catalog-import-db-detail-body {
    min-width: 360px;
  }
}

@media (max-width: 720px) {
  .catalog-import-db-preview-guide {
    padding: .65rem .7rem;
  }

  .catalog-import-other-heading {
    display: grid;
    gap: .15rem;
  }

  .catalog-import-rig-mobile .gear-ledger-mobile-item > summary {
    align-items: flex-start;
  }
}
/* ===== END KMA CSS SOURCE: style-165r3.css ===== */

/* ===== KMA CSS SOURCE 098/101: style-165r4.css ===== */
.trip-catalog-select-page{display:grid;gap:18px}.trip-catalog-select-bar{position:sticky;top:8px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;border:1px solid var(--line,#d9e1ea);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(15,23,42,.08)}.trip-catalog-select-bar.is-bottom{position:static;margin-top:16px}.trip-catalog-select-list{display:grid;gap:12px}.trip-catalog-select-item{display:grid;grid-template-columns:minmax(250px,1.25fr) minmax(420px,2fr) 120px;gap:18px;align-items:center;padding:16px;border:1px solid #dbe3ec;border-radius:16px;background:#fff}.trip-catalog-select-item.is-existing{border-color:#9cc7a9;background:#fbfffc}.trip-catalog-select-check{display:flex;align-items:flex-start;gap:12px}.trip-catalog-select-check input{width:24px;height:24px;flex:0 0 auto;margin-top:2px}.trip-catalog-select-check span{display:grid;gap:4px}.trip-catalog-select-specs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:0}.trip-catalog-select-specs div{display:grid;grid-template-columns:100px 1fr;gap:8px}.trip-catalog-select-specs dt{font-weight:700;color:#607086}.trip-catalog-select-specs dd{margin:0}.trip-catalog-select-qty{display:grid;grid-template-columns:1fr auto;gap:4px 6px;align-items:center;font-weight:700}.trip-catalog-select-qty input{grid-column:1;width:78px}.trip-catalog-select-qty span{grid-column:2}.trip-catalog-existing-note{grid-column:1/-1;color:#4f6d57}@media(max-width:900px){.trip-catalog-select-item{grid-template-columns:1fr}.trip-catalog-select-specs{grid-template-columns:1fr}.trip-catalog-select-qty{justify-content:start}.trip-catalog-select-bar{bottom:8px;top:auto}.trip-catalog-select-bar.is-bottom{display:none}}
.trip-catalog-direct-entry{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 14px;padding:12px;border:1px dashed #9eb7d3;border-radius:12px;background:#f7fbff}.trip-catalog-direct-entry small{color:#53657a}.trip-direct-catalog-card{margin-top:16px}.trip-direct-catalog-list{display:grid;gap:10px}.trip-direct-catalog-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px;border:1px solid #dbe3ec;border-radius:12px}.trip-direct-catalog-row>div{display:grid;gap:3px}.trip-direct-catalog-row small{color:#66758a}@media(max-width:700px){.trip-direct-catalog-row{grid-template-columns:1fr}.trip-direct-catalog-row form{justify-self:start}}
/* ===== END KMA CSS SOURCE: style-165r4.css ===== */

/* ===== KMA CSS SOURCE 099/101: style-165r5.css ===== */
.trip-catalog-mygear-option{margin:12px 0 16px;padding:14px 16px;border:1px solid #b8d6c0;border-radius:14px;background:#f7fcf8}.trip-catalog-mygear-option label{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.trip-catalog-mygear-option input{width:24px;height:24px;flex:0 0 auto;margin-top:2px}.trip-catalog-mygear-option span{display:grid;gap:4px}.trip-catalog-mygear-option strong{font-size:1.05rem}.trip-catalog-mygear-option small,.trip-catalog-mygear-option p{color:#536b5a}.trip-catalog-mygear-option p{margin:8px 0 0 36px}.trip-catalog-select-side{display:grid;gap:8px}.trip-catalog-mygear-status{display:inline-flex;width:max-content;max-width:100%;padding:4px 8px;border-radius:999px;background:#f1f4f8;color:#5b6675;font-size:.82rem;font-weight:700}.trip-catalog-mygear-status.is-owned{background:#e5f7ea;color:#28743a}@media(max-width:900px){.trip-catalog-mygear-option p{margin-left:0}.trip-catalog-select-side{justify-items:start}}
/* ===== END KMA CSS SOURCE: style-165r5.css ===== */

/* ===== KMA CSS SOURCE 100/101: style-165r7.css ===== */
.trip-catalog-registration-label{font-size:.78rem;font-weight:800;color:#607086;text-transform:none}.trip-catalog-registration-path{display:flex;flex-wrap:wrap;gap:6px}.trip-catalog-registration-path span{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:4px 8px;border-radius:999px;font-size:.8rem;font-weight:750;line-height:1.35;background:#f1f4f8;color:#5b6675}.trip-catalog-registration-path .is-database{background:#eaf2ff;color:#285f9e}.trip-catalog-registration-path .is-owned{background:#e5f7ea;color:#28743a}.trip-catalog-registration-path .is-trip{background:#fff1dc;color:#8a5700}.trip-catalog-registration-path .is-empty{background:#f3f4f6;color:#77808b}@media(max-width:900px){.trip-catalog-registration-path{gap:5px}}
/* ===== END KMA CSS SOURCE: style-165r7.css ===== */

/* ===== KMA CSS SOURCE 101/101: style-166r1.css ===== */
/* 1.66r1: cross-device PWA install UX for iPhone/iPad, Android, Mac and Windows. */
.app-install-detected {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 5px;
  margin-top: 12px;
  padding: 9px 11px;
  border: 1px solid #bae6fd;
  border-radius: 12px;
  background: #f8fdff;
  color: #334155;
  font-size: .9rem;
}

.app-install-detected strong {
  color: #075985;
  font-size: 1rem;
}

.app-install-platform-grid {
  grid-template-columns: minmax(0, 1fr);
}

.app-install-platform[hidden],
.app-install-platform [hidden] {
  display: none !important;
}

.desktop-pwa-install-button {
  width: min(100%, 430px);
  min-height: 50px;
  margin: 0 0 12px;
  font-size: 1rem;
  font-weight: 900;
}

.desktop-pwa-install-result {
  color: #475569;
  line-height: 1.6;
}

.desktop-pwa-install-result:empty {
  display: none;
}

.app-install-platform-fallback {
  border-style: dashed;
}

@media (min-width: 850px) {
  .app-install-platform {
    padding: 20px;
  }
}
/* ===== END KMA CSS SOURCE: style-166r1.css ===== */


/* 1.68r1 User Manual / Help Center */
.site-footer-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
  margin-bottom: 4px;
  font-weight: 800;
}
.site-footer-help {
  display: inline-block;
  margin-bottom: 4px;
  color: #64748b;
}
.manual-container {
  max-width: 1000px;
}
.manual-hero {
  margin-bottom: 16px;
}
.manual-kicker {
  margin: 0 0 5px;
  color: var(--blue);
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .08em;
}
.manual-hero h1,
.manual-now h2,
.manual-end h2 {
  margin: 0;
  color: var(--navy);
}
.manual-lead {
  margin: 12px 0 0;
  font-size: 1.03rem;
  line-height: 1.8;
}
.manual-version-row {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
}
.manual-version-row span {
  padding: 4px 9px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: .75rem;
  font-weight: 800;
}
.manual-topic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 16px;
}
.manual-topic-grid a {
  min-height: 86px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  padding: 15px 16px;
  border: 1px solid #bae6fd;
  border-radius: 14px;
  background: #fff;
  color: var(--navy);
  text-decoration: none;
  box-shadow: 0 7px 20px #0f38540d;
}
.manual-topic-grid a:hover,
.manual-topic-grid a:focus-visible {
  border-color: #38bdf8;
  background: #f0f9ff;
}
.manual-topic-grid strong {
  font-size: .97rem;
}
.manual-topic-grid span {
  color: var(--muted);
  font-size: .78rem;
}
.manual-now {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
}
.manual-action-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.manual-sections {
  display: grid;
  gap: 10px;
}
.manual-section {
  scroll-margin-top: 18px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 7px 22px #0f38540b;
}
.manual-section > summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 17px;
  cursor: pointer;
  list-style: none;
}
.manual-section > summary::-webkit-details-marker {
  display: none;
}
.manual-section > summary::after {
  content: "＋";
  margin-left: auto;
  color: var(--blue);
  font-size: 1.2rem;
  font-weight: 900;
}
.manual-section[open] > summary::after {
  content: "−";
}
.manual-section > summary > span:last-of-type {
  display: grid;
  gap: 2px;
}
.manual-section > summary strong {
  color: var(--navy);
  font-size: 1.02rem;
}
.manual-section > summary small {
  color: var(--muted);
  font-size: .76rem;
}
.manual-section-number {
  min-width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #e0f2fe;
  color: #0369a1;
  font-size: .78rem;
  font-weight: 900;
}
.manual-section-body {
  padding: 0 20px 20px 66px;
  border-top: 1px solid #eef2f7;
}
.manual-section-body p,
.manual-section-body li {
  line-height: 1.8;
}
.manual-section-body h3 {
  margin: 18px 0 6px;
  color: var(--navy);
  font-size: 1rem;
}
.manual-section-body h3:first-child {
  margin-top: 16px;
}
.manual-rule-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 15px 0;
}
.manual-rule-grid div {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid #dbeafe;
  border-radius: 11px;
  background: #f8fbff;
}
.manual-rule-grid strong {
  color: var(--navy);
  font-size: .8rem;
}
.manual-rule-grid span {
  color: #075985;
  font-size: .9rem;
  font-weight: 900;
}
.manual-warning {
  padding: 12px 14px;
  border-left: 4px solid #f59e0b;
  border-radius: 9px;
  background: #fffbeb;
}
.manual-admin-section {
  border-color: #c4b5fd;
}
.manual-admin-section .manual-section-number {
  background: #ede9fe;
  color: #6d28d9;
}
.manual-end {
  margin-top: 16px;
  text-align: center;
}
.manual-end .manual-action-links {
  justify-content: center;
  margin-top: 14px;
}
@media (max-width: 760px) {
  .manual-topic-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .manual-now {
    align-items: stretch;
    flex-direction: column;
  }
  .manual-rule-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px) {
  .manual-topic-grid {
    grid-template-columns: 1fr;
  }
  .manual-topic-grid a {
    min-height: 72px;
  }
  .manual-section > summary {
    align-items: flex-start;
    padding: 14px;
  }
  .manual-section-body {
    padding: 0 15px 17px;
  }
  .manual-rule-grid {
    grid-template-columns: 1fr 1fr;
  }
  .manual-action-links > * {
    flex: 1 1 100%;
    width: 100%;
  }
  .site-footer-links {
    gap: 4px;
  }
}


/* 1.68r2 Expanded Help Center / Advanced Guides */
.manual-guide-index {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(0, 1.8fr);
  gap: 18px;
  align-items: center;
  margin-bottom: 16px;
}
.manual-guide-index h2,
.manual-guide-card h2 {
  margin: 0 0 8px;
  color: var(--navy);
}
.manual-guide-index p,
.manual-guide-card > p {
  line-height: 1.8;
}
.manual-guide-links {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}
.manual-guide-links a {
  display: grid;
  gap: 4px;
  padding: 13px 14px;
  border: 1px solid #bae6fd;
  border-radius: 12px;
  background: #f8fcff;
  color: var(--navy);
  text-decoration: none;
}
.manual-guide-links span {
  color: var(--muted);
  font-size: .76rem;
}
.manual-guide-hero {
  border-color: #bae6fd;
}
.manual-guide-card {
  margin-bottom: 14px;
}
.manual-guide-card h3 {
  margin: 14px 0 6px;
  color: var(--navy);
}
.manual-three-layer-grid,
.manual-method-grid,
.manual-recipient-grid,
.manual-two-column {
  display: grid;
  gap: 10px;
  margin: 14px 0;
}
.manual-three-layer-grid,
.manual-method-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.manual-recipient-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.manual-two-column {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.manual-three-layer-grid article,
.manual-method-grid article,
.manual-recipient-grid article,
.manual-two-column article {
  position: relative;
  padding: 14px;
  border: 1px solid #dbeafe;
  border-radius: 12px;
  background: #f8fbff;
}
.manual-three-layer-grid article > span:first-child,
.manual-method-badge {
  display: inline-flex;
  min-width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #e0f2fe;
  color: #0369a1;
  font-weight: 900;
}
.manual-three-layer-grid h3,
.manual-method-grid h3,
.manual-recipient-grid h3,
.manual-two-column h3 {
  margin: 9px 0 6px;
}
.manual-three-layer-grid p,
.manual-method-grid p,
.manual-recipient-grid p,
.manual-two-column p {
  margin: 0;
  line-height: 1.65;
}
.manual-callout {
  padding: 12px 14px;
  border-left: 4px solid #0ea5e9;
  border-radius: 9px;
  background: #f0f9ff;
}
.manual-step-list {
  counter-reset: manual-step;
  display: grid;
  gap: 9px;
  padding: 0;
  margin: 14px 0;
  list-style: none;
}
.manual-step-list li {
  counter-increment: manual-step;
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  column-gap: 10px;
  padding: 11px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 11px;
  background: #fff;
}
.manual-step-list li::before {
  content: counter(manual-step);
  grid-row: 1 / span 2;
  display: inline-flex;
  width: 30px;
  height: 30px;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #075985;
  color: #fff;
  font-size: .78rem;
  font-weight: 900;
}
.manual-step-list strong {
  color: var(--navy);
}
.manual-step-list span {
  display: block;
  margin-top: 2px;
  color: #475569;
}
.manual-decision-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0;
}
.manual-decision-grid div {
  display: grid;
  gap: 3px;
  padding: 11px 12px;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: #f8fbff;
}
.manual-decision-grid strong {
  color: var(--navy);
}
.manual-decision-grid span {
  color: var(--muted);
  font-size: .82rem;
}
.manual-decision-list {
  display: grid;
  gap: 7px;
  margin: 13px 0;
}
.manual-decision-list p {
  display: grid;
  grid-template-columns: minmax(180px, .9fr) minmax(0, 1.1fr);
  gap: 10px;
  margin: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #e2e8f0;
}
.manual-decision-list strong {
  color: var(--navy);
}
.manual-decision-list span {
  color: #075985;
  font-weight: 800;
}
.manual-do {
  border-color: #bbf7d0 !important;
  background: #f0fdf4 !important;
}
.manual-dont {
  border-color: #fed7aa !important;
  background: #fff7ed !important;
}
.manual-do ul,
.manual-dont ul {
  margin-bottom: 0;
}
.manual-advanced-section {
  scroll-margin-top: 18px;
}
@media (max-width: 820px) {
  .manual-guide-index {
    grid-template-columns: 1fr;
  }
  .manual-guide-links,
  .manual-three-layer-grid,
  .manual-method-grid,
  .manual-recipient-grid,
  .manual-decision-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .manual-guide-links,
  .manual-three-layer-grid,
  .manual-method-grid,
  .manual-recipient-grid,
  .manual-two-column,
  .manual-decision-grid {
    grid-template-columns: 1fr;
  }
  .manual-decision-list p {
    grid-template-columns: 1fr;
    gap: 3px;
  }
}


/* 1.68r4 Help Center: separate user actions from ChatGPT work. */
.manual-photo-gear-section > summary {
  background: linear-gradient(90deg, #f8fbff 0%, #f0f9ff 100%);
}
.manual-user-workflow {
  position: relative;
}
.manual-user-workflow::before {
  content: "あなたがすること";
  display: inline-flex;
  margin: 2px 0 2px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #075985;
  color: #fff;
  font-size: .76rem;
  font-weight: 900;
  letter-spacing: .03em;
}
.manual-chatgpt-panel {
  margin: 16px 0;
  padding: 15px 16px;
  border: 1px solid #c4b5fd;
  border-left: 5px solid #7c3aed;
  border-radius: 12px;
  background: #f5f3ff;
}
.manual-chatgpt-panel h3 {
  margin: 4px 0 8px;
  color: var(--navy);
}
.manual-chatgpt-panel ul {
  margin: 8px 0 0;
  padding-left: 1.25rem;
}
.manual-photo-checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0 14px;
}
.manual-photo-checklist span {
  padding: 10px 12px;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: #f8fbff;
  color: var(--navy);
  font-weight: 800;
}
.manual-direct-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 12px 0;
}
.manual-category-downloads {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0 4px;
}
.manual-category-downloads a {
  display: block;
  padding: 10px 12px;
  border: 1px solid #bae6fd;
  border-radius: 10px;
  background: #f8fcff;
  color: var(--navy);
  text-decoration: none;
  font-weight: 800;
}
@media (max-width: 700px) {
  .manual-photo-checklist,
  .manual-category-downloads {
    grid-template-columns: 1fr;
  }
  .manual-direct-actions > * {
    width: 100%;
    text-align: center;
  }
}

/* 1.68r5: explanatory text is compact by default and expands only on demand. */
.kma-explanation {
  margin: .4rem 0 .65rem;
  border: 0;
  background: transparent;
}
.kma-explanation > .kma-explanation-summary {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 1.85rem;
  padding: .28rem .68rem;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f8fafc;
  color: #475569;
  font-size: .8rem;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  list-style: none;
  user-select: none;
}
.kma-explanation > .kma-explanation-summary::-webkit-details-marker {
  display: none;
}
.kma-explanation > .kma-explanation-summary::before {
  content: '＋';
  font-size: .9rem;
  line-height: 1;
}
.kma-explanation[open] > .kma-explanation-summary::before {
  content: '−';
}
.kma-explanation > .kma-explanation-summary:hover,
.kma-explanation > .kma-explanation-summary:focus-visible {
  background: #eef6fb;
  border-color: #7dd3fc;
  color: #075985;
}
.kma-explanation-label-open {
  display: none;
}
.kma-explanation[open] .kma-explanation-label-closed {
  display: none;
}
.kma-explanation[open] .kma-explanation-label-open {
  display: inline;
}
.kma-explanation-body {
  margin-top: .45rem;
}
.kma-explanation-body > :first-child {
  margin-top: 0;
}
.kma-explanation-body > :last-child {
  margin-bottom: 0;
}
@media (max-width: 720px) {
  .kma-explanation {
    margin: .3rem 0 .5rem;
  }
  .kma-explanation > .kma-explanation-summary {
    min-height: 1.75rem;
    padding: .25rem .6rem;
    font-size: .78rem;
  }
}


/* 1.69r1: Shared Fish Master read-only GAME sync / profile UI */
.fish-sync-status-grid,.fish-sync-summary-grid,.fish-profile-identity-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px;margin-top:12px;
}
.fish-sync-status-grid>div,.fish-sync-summary-grid>div,.fish-profile-identity-grid>div{
  border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:11px 12px;min-width:0;
}
.fish-sync-status-grid span,.fish-sync-summary-grid span,.fish-profile-identity-grid span{
  display:block;color:var(--muted);font-size:.76rem;font-weight:800;margin-bottom:3px;
}
.fish-sync-status-grid strong,.fish-sync-summary-grid strong,.fish-profile-identity-grid strong{
  display:block;color:var(--navy);overflow-wrap:anywhere;
}
.fish-sync-summary-grid .is-review{background:#fff7ed;border-color:#fdba74}.fish-sync-summary-grid .is-review strong{color:#9a3412}
.fish-sync-summary-grid .is-new{background:#eff6ff;border-color:#93c5fd}.fish-sync-summary-grid .is-new strong{color:#1d4ed8}
.fish-sync-summary-grid .is-update{background:#ecfdf5;border-color:#86efac}.fish-sync-summary-grid .is-update strong{color:#166534}
.fish-sync-actions{align-items:center;flex-wrap:wrap}.fish-sync-actions small{color:var(--muted);max-width:700px}
.fish-sync-group{padding:0;overflow:hidden}.fish-sync-group-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:14px 16px;list-style:none;background:#f8fafc}.fish-sync-group-summary::-webkit-details-marker{display:none}.fish-sync-group-summary::after{content:"＋";font-weight:900;color:var(--navy)}.fish-sync-group[open]>.fish-sync-group-summary::after{content:"−"}.fish-sync-group-summary>span{margin-left:auto;color:var(--muted);font-weight:800}
.fish-sync-list{display:grid;gap:10px;padding:12px 16px 16px}.fish-sync-row{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.fish-sync-row.is-manual_review{border-color:#fdba74;background:#fffaf5}.fish-sync-row.is-game_new{border-color:#93c5fd}.fish-sync-row.is-update{border-color:#86efac}
.fish-sync-row-main{display:flex;align-items:flex-start;gap:10px}.fish-sync-row-main>div{min-width:0}.fish-sync-row-main strong{display:block}.fish-sync-row-main small{display:block;color:var(--muted);margin-top:2px;overflow-wrap:anywhere}
.fish-sync-badge{flex:0 0 auto;display:inline-flex;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:900;background:#e5e7eb;color:#374151}.fish-sync-badge.is-manual_review{background:#ffedd5;color:#9a3412}.fish-sync-badge.is-game_new{background:#dbeafe;color:#1d4ed8}.fish-sync-badge.is-update{background:#dcfce7;color:#166534}.fish-sync-badge.is-club_only{background:#f3e8ff;color:#7e22ce}.fish-sync-badge.is-unchanged{background:#f1f5f9;color:#475569}
.fish-sync-reason{margin:9px 0 0}.fish-sync-change-list{margin:9px 0 0;padding-left:20px;color:#334155}.fish-sync-change-list li+li{margin-top:3px}.fish-sync-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.fish-sync-row-actions .button-link{padding:7px 10px;font-size:.8rem}
.fish-profile-heading-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.fish-profile-highlight h2{margin-top:0}.fish-profile-highlight p{line-height:1.75}.fish-profile-section{padding:0;overflow:hidden}.fish-profile-section>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;cursor:pointer;list-style:none;background:#f8fafc}.fish-profile-section>summary::-webkit-details-marker{display:none}.fish-profile-section>summary span{font-size:.78rem;color:var(--muted)}.fish-profile-section[open]>summary span{font-size:0}.fish-profile-section[open]>summary span::after{content:"閉じる";font-size:.78rem}.fish-profile-section-body{padding:14px 16px;line-height:1.7}.fish-profile-dl{margin:0;display:grid;gap:10px}.fish-profile-dl>div{border-bottom:1px solid #e5e7eb;padding-bottom:9px}.fish-profile-dl>div:last-child{border-bottom:0;padding-bottom:0}.fish-profile-dl dt{font-weight:900;color:var(--navy);font-size:.82rem}.fish-profile-dl dd{margin:4px 0 0}.fish-profile-list{margin:0;padding-left:20px}.fish-profile-list li+li{margin-top:6px}.fish-profile-integrity code{overflow-wrap:anywhere}
@media (max-width:640px){.fish-sync-status-grid,.fish-sync-summary-grid,.fish-profile-identity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fish-sync-group-summary{padding:12px}.fish-sync-list{padding:10px 12px 12px}.fish-sync-row{padding:10px}.fish-sync-row-actions{align-items:stretch}.fish-sync-row-actions .button-link{width:100%;text-align:center}.fish-profile-heading-actions{width:100%;justify-content:stretch}.fish-profile-heading-actions .button-link{flex:1 1 100%;text-align:center}}


/* 1.69r4: Gear Database start screen balance refresh */
.gear-database-page {
  gap: 18px;
}

.gear-database-hero {
  padding-block: clamp(22px, 4.4vw, 34px);
}

.gear-database-start-note {
  margin: -2px 0 2px;
  color: #526779;
  font-size: 0.93rem;
  font-weight: 700;
}

.gear-database-start-grid {
  justify-content: center;
  align-items: stretch;
  gap: 1rem;
}

@media (min-width: 901px) {
  .gear-database-start-grid.gear-path-grid.is-two-column {
    grid-template-columns: repeat(2, minmax(0, 520px));
  }
}

.gear-database-page .gear-path-card {
  gap: 0.78rem;
}

.gear-path-summary {
  color: #12334a;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.55;
}

.gear-database-page .gear-path-card > .kma-explanation {
  margin-top: -0.05rem;
  margin-bottom: 0.1rem;
}

.gear-database-page .gear-path-card > .gear-path-action {
  align-self: flex-start;
  margin-top: 0.2rem;
}

.gear-database-page .gear-path-card > p {
  line-height: 1.6;
}

@media (max-width: 720px) {
  .gear-database-start-note {
    font-size: 0.88rem;
  }

  .gear-path-summary {
    font-size: 0.92rem;
  }

  .gear-database-page .gear-path-card > .gear-path-action {
    width: 100%;
    text-align: center;
  }
}


/* ===== style-169r5-fish-profile-wizard.css ===== */
/* KMA FISHING CLUB 1.69r5 - ChatGPT Fish Profile Wizard */
.fish-profile-wizard {
  display: grid;
  gap: 1rem;
}

.fish-profile-wizard-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.fish-profile-wizard-heading h2,
.fish-profile-preview-card h2,
.fish-profile-preview-changes h2,
.fish-profile-preview-sources h2,
.fish-profile-confirm-card h2 {
  margin-top: .2rem;
}

.fish-profile-wizard-state {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
  border-radius: 999px;
  padding: .35rem .7rem;
  background: #dcfce7;
  color: #166534;
  font-size: .78rem;
  font-weight: 900;
}

.fish-profile-user-steps {
  display: grid;
  gap: .75rem;
}

.fish-profile-step-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .85rem;
  align-items: center;
  padding: .9rem 1rem;
  border: 1px solid #d8e5ec;
  border-radius: 13px;
  background: #fbfdfe;
}

.fish-profile-step-card.is-upload {
  align-items: start;
}

.fish-profile-step-number {
  display: inline-grid;
  place-items: center;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  background: #e0f2fe;
  color: #075985;
  font-weight: 900;
}

.fish-profile-step-card strong {
  display: block;
  color: #0f172a;
}

.fish-profile-step-card p {
  margin: .25rem 0 0;
  color: #526779;
  font-size: .88rem;
  line-height: 1.55;
}

.fish-profile-upload-form {
  grid-column: 2 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .7rem;
  align-items: end;
  width: 100%;
}

.fish-profile-upload-form label {
  min-width: 0;
}

.fish-profile-upload-form label > span {
  display: block;
  margin-bottom: .35rem;
  font-size: .78rem;
  font-weight: 800;
  color: #475569;
}

.fish-profile-upload-form input[type="file"] {
  width: 100%;
  box-sizing: border-box;
}

.fish-profile-chatgpt-work,
.fish-profile-safety-note {
  border: 1px solid #d8e5ec;
  border-radius: 11px;
  background: #fff;
}

.fish-profile-chatgpt-work > summary,
.fish-profile-safety-note > summary {
  padding: .7rem .85rem;
  cursor: pointer;
  color: #334155;
  font-weight: 850;
}

.fish-profile-chatgpt-work > div,
.fish-profile-safety-note > div {
  padding: 0 .85rem .8rem;
  color: #475569;
  font-size: .88rem;
  line-height: 1.6;
}

.fish-profile-chatgpt-work p,
.fish-profile-safety-note p {
  margin: .45rem 0 0;
}

.fish-profile-bundle-ready {
  margin: 0;
  padding: .65rem .8rem;
  border-radius: 10px;
  background: #ecfdf5;
  color: #166534;
  font-size: .86rem;
  font-weight: 750;
}

.fish-profile-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.fish-profile-preview-card {
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  margin: 0;
}

.fish-profile-preview-card.is-proposed {
  border-color: #93c5fd;
}

.fish-profile-preview-card details {
  margin-top: .8rem;
}

.fish-profile-preview-card summary {
  cursor: pointer;
  font-weight: 800;
  color: #075985;
}

.fish-profile-preview-card pre {
  max-height: 420px;
  margin: .7rem 0 0;
  padding: .8rem;
  overflow: auto;
  border-radius: 10px;
  background: #0f172a;
  color: #e2e8f0;
  font-size: .74rem;
  line-height: 1.45;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.fish-profile-change-paths {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .7rem 0 0;
  padding: 0;
  list-style: none;
}

.fish-profile-change-paths li {
  padding: .3rem .55rem;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: .78rem;
}

.fish-profile-preview-sources ul {
  display: grid;
  gap: .65rem;
  padding-left: 1.2rem;
}

.fish-profile-preview-sources li {
  overflow-wrap: anywhere;
}

.fish-profile-preview-sources strong,
.fish-profile-preview-sources a,
.fish-profile-preview-sources span {
  display: block;
}

.fish-profile-confirm-check {
  display: flex;
  gap: .55rem;
  align-items: flex-start;
  margin: 1rem 0;
  font-weight: 800;
}

.fish-profile-confirm-check input {
  margin-top: .2rem;
}

@media (max-width: 820px) {
  .fish-profile-step-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .fish-profile-step-card > .button-link,
  .fish-profile-upload-form {
    grid-column: 1 / -1;
  }

  .fish-profile-step-card > .button-link {
    width: 100%;
    box-sizing: border-box;
    text-align: center;
  }

  .fish-profile-upload-form {
    grid-template-columns: 1fr;
  }

  .fish-profile-upload-form button {
    width: 100%;
  }

  .fish-profile-preview-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .fish-profile-wizard-heading {
    display: grid;
  }

  .fish-profile-wizard-state {
    justify-self: start;
  }

  .fish-profile-step-card {
    padding: .8rem;
  }
}


/* ===== style-169r6-fish-joint-edit.css ===== */
/* KMA FISHING CLUB 1.69r6 - Shared Fish joint editing / conflict UX */
.fish-identity-editor {
  padding: 0;
  overflow: hidden;
}

.fish-identity-editor > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .9rem 1rem;
  background: #f8fafc;
  cursor: pointer;
  list-style: none;
}

.fish-identity-editor > summary::-webkit-details-marker { display: none; }
.fish-identity-editor > summary span { color: #64748b; font-size: .78rem; font-weight: 800; }
.fish-identity-editor-body { padding: 1rem; }
.fish-identity-editor-lead { margin-top: 0; color: #475569; line-height: 1.6; }

.fish-identity-editor-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem 1rem;
}

.fish-identity-editor-form label { min-width: 0; }
.fish-identity-editor-form label > span {
  display: block;
  margin-bottom: .35rem;
  color: #334155;
  font-size: .82rem;
  font-weight: 850;
}
.fish-identity-editor-form input,
.fish-identity-editor-form textarea { width: 100%; box-sizing: border-box; }
.fish-identity-editor-form textarea { resize: vertical; }
.fish-identity-editor-form .form-actions,
.fish-identity-fixed-fields { grid-column: 1 / -1; }

.fish-identity-fixed-fields {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.fish-identity-fixed-fields span {
  padding: .35rem .55rem;
  border-radius: 9px;
  background: #f1f5f9;
  color: #475569;
  font-size: .78rem;
}

.fish-identity-preview-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.fish-identity-preview-card { width: 100%; max-width: none; margin: 0; box-sizing: border-box; }
.fish-identity-preview-card.is-proposed { border-color: #93c5fd; }
.fish-identity-diff-list { display: grid; gap: .6rem; margin: 0; }
.fish-identity-diff-list > div { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: .65rem; padding-bottom: .55rem; border-bottom: 1px solid #e5e7eb; }
.fish-identity-diff-list > div:last-child { border-bottom: 0; padding-bottom: 0; }
.fish-identity-diff-list dt { color: #64748b; font-size: .78rem; font-weight: 850; }
.fish-identity-diff-list dd { margin: 0; overflow-wrap: anywhere; }
.fish-identity-validation-note { margin-top: .8rem; }
.fish-identity-validation-note summary { cursor: pointer; color: #92400e; font-weight: 850; }

.fish-shared-conflict-card {
  max-width: 780px;
  border-color: #f59e0b;
}
.fish-shared-conflict-card h1 { margin-bottom: .65rem; }
.fish-shared-conflict-message {
  padding: .8rem .9rem;
  border-radius: 11px;
  background: #fff7ed;
  color: #9a3412;
  font-weight: 850;
  line-height: 1.6;
}
.fish-shared-conflict-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .7rem;
  margin: 1rem 0;
}

@media (max-width: 760px) {
  .fish-identity-editor-form,
  .fish-identity-preview-grid { grid-template-columns: 1fr; }
  .fish-identity-editor-form .form-actions,
  .fish-identity-fixed-fields { grid-column: auto; }
  .fish-shared-conflict-actions { display: grid; }
  .fish-shared-conflict-actions > * { width: 100%; box-sizing: border-box; text-align: center; }
}


/* ===== style-169r7-fish-admin-hub.css ===== */
/* KMA FISHING CLUB 1.69r7 - Shared Fish Master Admin Hub */
.fish-admin-heading { align-items: flex-start; }
.fish-admin-heading-actions,
.fish-admin-primary-actions,
.fish-admin-diagnostic-actions,
.fish-admin-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.fish-admin-status-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .7rem;
  margin: 1rem 0;
}
.fish-admin-status {
  min-width: 0;
  padding: .8rem .9rem;
  border: 1px solid #dbe4ea;
  border-radius: 12px;
  background: #fff;
}
.fish-admin-status.is-warning { border-color: #f59e0b; background: #fffaf0; }
.fish-admin-status.is-attention { border-color: #60a5fa; background: #f0f7ff; }
.fish-admin-status span,
.fish-admin-status small { display: block; color: #64748b; }
.fish-admin-status span { font-size: .76rem; font-weight: 850; }
.fish-admin-status strong { display: block; margin: .2rem 0; font-size: 1.05rem; overflow-wrap: anywhere; }
.fish-admin-status small { font-size: .72rem; line-height: 1.35; overflow-wrap: anywhere; }

.fish-admin-primary-actions { margin: 1rem 0; }
.fish-admin-new > summary,
.fish-admin-sync > summary,
.fish-admin-diagnostics > summary,
.fish-admin-help > summary {
  display: flex;
  justify-content: space-between;
  gap: .8rem;
  cursor: pointer;
  align-items: center;
}
.fish-admin-new > summary span,
.fish-admin-sync > summary span,
.fish-admin-diagnostics > summary span,
.fish-admin-help > summary span { color: #64748b; font-size: .78rem; font-weight: 800; }
.fish-admin-new-body,
.fish-admin-detail-body { padding-top: .9rem; }
.fish-admin-new-form {
  display: grid;
  grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr) auto;
  gap: .8rem;
  align-items: end;
}
.fish-admin-new-form label > span,
.fish-admin-search-form label > span { display: block; margin-bottom: .3rem; color: #475569; font-size: .78rem; font-weight: 850; }
.fish-admin-new-form input,
.fish-admin-new-form textarea,
.fish-admin-search-form input,
.fish-admin-search-form select { width: 100%; box-sizing: border-box; }
.fish-admin-new-form textarea { resize: vertical; min-height: 2.65rem; }
.fish-admin-help { margin-top: .75rem; }

.fish-admin-list-heading { align-items: end; }
.fish-admin-search-form {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(190px, .45fr) auto auto;
  gap: .65rem;
  align-items: end;
  margin: .8rem 0 1rem;
}
.fish-admin-list { display: grid; gap: .65rem; }
.fish-admin-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  padding: .8rem .9rem;
  border: 1px solid #dbe4ea;
  border-radius: 11px;
  background: #fff;
}
.fish-admin-row.is-warning { border-color: #f59e0b; background: #fffdf7; }
.fish-admin-row-main { min-width: 0; }
.fish-admin-row-title { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.fish-admin-row-title > strong { font-size: 1rem; }
.fish-admin-badges { display: flex; flex-wrap: wrap; gap: .32rem; }
.fish-admin-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.55rem;
  padding: .1rem .45rem;
  border-radius: 999px;
  background: #eef2f7;
  color: #475569;
  font-size: .68rem;
  font-weight: 850;
}
.fish-admin-badge.is-linked { background: #e8f5ee; color: #166534; }
.fish-admin-badge.is-club { background: #f1f5f9; color: #475569; }
.fish-admin-badge.is-game { background: #eff6ff; color: #1d4ed8; }
.fish-admin-badge.is-profile { background: #ecfdf5; color: #047857; }
.fish-admin-badge.is-pending { background: #fff7ed; color: #9a3412; }
.fish-admin-badge.is-warning { background: #fff1f2; color: #be123c; }
.fish-admin-identity { display: flex; flex-wrap: wrap; gap: .35rem .8rem; margin-top: .45rem; color: #64748b; font-size: .75rem; }
.fish-admin-identity code { overflow-wrap: anywhere; }
.fish-admin-aliases,
.fish-admin-reason,
.fish-admin-changes,
.fish-admin-trivia { margin: .42rem 0 0; font-size: .78rem; line-height: 1.5; }
.fish-admin-reason { color: #9a3412; font-weight: 750; }
.fish-admin-changes { color: #475569; }
.fish-admin-trivia { color: #334155; }
.fish-admin-trivia span { font-weight: 700; }
.fish-admin-updated { display: block; margin-top: .38rem; color: #94a3b8; }
.fish-admin-row-actions { justify-content: flex-end; max-width: 360px; }
.fish-admin-row-actions .button-link { white-space: nowrap; }

.fish-admin-diagnostic-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: .8rem 0;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  overflow: hidden;
}
.fish-admin-diagnostic-list > div { display: grid; grid-template-columns: 135px minmax(0, 1fr); gap: .6rem; padding: .55rem .65rem; border-bottom: 1px solid #e2e8f0; }
.fish-admin-diagnostic-list > div:nth-last-child(-n+2) { border-bottom: 0; }
.fish-admin-diagnostic-list dt { color: #64748b; font-size: .74rem; font-weight: 850; }
.fish-admin-diagnostic-list dd { margin: 0; overflow-wrap: anywhere; font-size: .78rem; }
.fish-admin-event-list { display: grid; gap: .45rem; margin-top: .7rem; }
.fish-admin-event-list > div { display: flex; justify-content: space-between; gap: .8rem; padding: .45rem .55rem; background: #f8fafc; border-radius: 8px; }
.fish-admin-event-list span { color: #64748b; font-size: .72rem; text-align: right; }

@media (max-width: 960px) {
  .fish-admin-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fish-admin-new-form { grid-template-columns: 1fr 1fr; }
  .fish-admin-new-form button { grid-column: 1 / -1; }
  .fish-admin-row { grid-template-columns: 1fr; }
  .fish-admin-row-actions { justify-content: flex-start; max-width: none; }
}

@media (max-width: 700px) {
  .fish-admin-status-grid,
  .fish-admin-new-form,
  .fish-admin-search-form,
  .fish-admin-diagnostic-list { grid-template-columns: 1fr; }
  .fish-admin-diagnostic-list > div,
  .fish-admin-diagnostic-list > div:nth-last-child(-n+2) { border-bottom: 1px solid #e2e8f0; }
  .fish-admin-diagnostic-list > div:last-child { border-bottom: 0; }
  .fish-admin-heading-actions,
  .fish-admin-primary-actions,
  .fish-admin-row-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .fish-admin-heading-actions > *,
  .fish-admin-primary-actions > *,
  .fish-admin-row-actions > * { width: 100%; box-sizing: border-box; text-align: center; }
  .fish-admin-event-list > div { display: grid; }
  .fish-admin-event-list span { text-align: left; }
}


/* ===== style-169r8-shared-fish-stable.css ===== */
/* KMA FISHING CLUB 1.69r8 - Shared Fish Master Stable Verification */
.fish-stable-card { margin-top: .9rem; }
.fish-stable-heading { align-items: flex-start; }
.fish-stable-overall {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: .25rem .7rem;
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 900;
  white-space: nowrap;
}
.fish-stable-overall.is-ready_for_manual { background: #e8f5ee; color: #166534; }
.fish-stable-overall.is-needs_action { background: #fff1f2; color: #be123c; }
.fish-stable-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
  margin: .8rem 0;
}
.fish-stable-summary > div {
  padding: .65rem .75rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}
.fish-stable-summary > div.is-blocking { border-color: #fda4af; background: #fff1f2; }
.fish-stable-summary > div.is-attention { border-color: #fdba74; background: #fff7ed; }
.fish-stable-summary span { display: block; color: #64748b; font-size: .7rem; font-weight: 850; }
.fish-stable-summary strong { display: block; margin-top: .15rem; font-size: 1.05rem; }
.fish-stable-checks { display: grid; gap: .42rem; }
.fish-stable-check {
  display: grid;
  grid-template-columns: 64px minmax(180px, .7fr) minmax(0, 1.3fr);
  gap: .65rem;
  align-items: center;
  padding: .5rem .6rem;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
}
.fish-stable-state {
  display: inline-flex;
  justify-content: center;
  padding: .12rem .38rem;
  border-radius: 999px;
  font-size: .66rem;
  font-weight: 900;
}
.fish-stable-check.is-pass .fish-stable-state { background: #e8f5ee; color: #166534; }
.fish-stable-check.is-attention .fish-stable-state { background: #fff7ed; color: #9a3412; }
.fish-stable-check.is-fail .fish-stable-state { background: #fff1f2; color: #be123c; }
.fish-stable-check.is-unknown .fish-stable-state { background: #eef2f7; color: #475569; }
.fish-stable-check small { color: #64748b; overflow-wrap: anywhere; }
.fish-stable-manual { margin-top: .8rem; padding-top: .7rem; border-top: 1px solid #e2e8f0; }
.fish-stable-manual > summary {
  display: flex;
  justify-content: space-between;
  gap: .7rem;
  cursor: pointer;
}
.fish-stable-manual > summary span { color: #64748b; font-size: .75rem; font-weight: 800; }
.fish-stable-manual ol { margin: .75rem 0 .4rem; padding-left: 1.35rem; }
.fish-stable-manual li { margin: .32rem 0; line-height: 1.45; }
@media (max-width: 780px) {
  .fish-stable-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fish-stable-check { grid-template-columns: 58px 1fr; }
  .fish-stable-check small { grid-column: 1 / -1; }
  .fish-stable-overall { white-space: normal; text-align: center; }
}
@media (max-width: 520px) {
  .fish-stable-summary { grid-template-columns: 1fr 1fr; }
  .fish-stable-heading { display: grid; gap: .55rem; }
  .fish-stable-manual > summary { display: grid; }
}


/* ===== style-170r1-database.css ===== */
.database-hub-container {
  max-width: 1120px;
}

.database-hub-page {
  display: grid;
  gap: 16px;
}

.database-hub-hero {
  padding: 20px 22px;
}

.database-hub-hero h1 {
  margin-bottom: 6px;
}

.database-hub-hero > p {
  margin: 0;
  max-width: 780px;
}

.database-hub-help {
  margin-top: 12px;
}

.database-hub-help summary {
  width: fit-content;
  cursor: pointer;
  font-weight: 700;
}

.database-hub-help div {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--surface-soft, #f7fafc);
}

.database-hub-help p {
  margin: 0;
}

.database-hub-help p + p {
  margin-top: 6px;
}

.database-hub-section {
  display: grid;
  gap: 10px;
}

.database-hub-section-heading h2,
.database-hub-section-heading p {
  margin: 0;
}

.database-hub-section-heading p {
  margin-top: 4px;
}

.database-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.database-hub-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 104px;
  padding: 14px 16px;
  border: 1px solid var(--line, #d7e1e8);
  border-radius: 14px;
  background: var(--surface, #fff);
}

.database-hub-card.is-pending {
  background: var(--surface-soft, #f8fafc);
}

.database-hub-card-main {
  min-width: 0;
}

.database-hub-card-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.database-hub-card h3,
.database-hub-card p {
  margin: 0;
}

.database-hub-card p {
  margin-top: 5px;
  font-size: 0.92rem;
}

.database-hub-status {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
  white-space: nowrap;
}

.database-hub-status.is-ready {
  background: #e8f7ef;
  color: #17623b;
}

.database-hub-status.is-pending {
  background: #eef2f6;
  color: #5d6873;
}

.database-hub-card-action {
  flex: 0 0 auto;
}

.database-hub-coming-soon {
  font-size: 0.82rem;
  color: #6b7280;
  white-space: nowrap;
}

.database-hub-footer-actions {
  display: flex;
  justify-content: flex-end;
}

@media (max-width: 760px) {
  .database-hub-grid {
    grid-template-columns: 1fr;
  }

  .database-hub-card {
    min-height: 0;
    align-items: flex-start;
  }
}

@media (max-width: 480px) {
  .database-hub-hero {
    padding: 16px;
  }

  .database-hub-card {
    display: grid;
    gap: 10px;
  }

  .database-hub-card-action {
    justify-self: stretch;
  }

  .database-hub-card-action .secondary {
    width: 100%;
    text-align: center;
  }

  .database-hub-coming-soon {
    display: block;
  }
}


/* ===== style-170r2-fish-detail.css ===== */
.fish-db-container,
.fish-detail-container {
  max-width: 1160px;
}

.fish-db-page,
.fish-detail-page {
  display: grid;
  gap: 16px;
}

.fish-db-hero,
.fish-detail-hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 20px 22px;
}

.fish-db-hero h1,
.fish-detail-hero h1,
.fish-db-hero p,
.fish-detail-hero p {
  margin-top: 0;
}

.fish-db-hero p:last-child,
.fish-detail-title-block p:last-child {
  margin-bottom: 0;
}

.fish-db-search-card {
  padding: 14px 16px;
}

.fish-db-search-form {
  display: grid;
  gap: 7px;
}

.fish-db-search-form label {
  font-weight: 700;
}

.fish-db-search-row {
  display: flex;
  gap: 8px;
  align-items: center;
}

.fish-db-search-row input {
  flex: 1 1 360px;
  min-width: 0;
}

.fish-db-section-heading,
.fish-detail-section-head,
.fish-db-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.fish-db-section-heading h2,
.fish-db-section-heading span,
.fish-detail-section-head h2,
.fish-detail-section-head p,
.fish-db-card h3,
.fish-db-card p {
  margin: 0;
}

.fish-db-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.fish-db-card {
  display: grid;
  gap: 9px;
  padding: 14px 16px;
  border: 1px solid var(--line, #d7e1e8);
  border-radius: 14px;
  background: var(--surface, #fff);
}

.fish-db-card-head h3 {
  font-size: 1.08rem;
}

.fish-db-card-head p,
.fish-db-aliases,
.fish-db-scientific {
  font-size: 0.86rem;
  color: var(--muted, #5f6b76);
}

.fish-db-link-state,
.fish-detail-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #eef2f6;
  color: #5d6873;
  font-size: 0.76rem;
  font-weight: 700;
  white-space: nowrap;
}

.fish-db-link-state.is-linked,
.fish-detail-badge.is-ready {
  background: #e8f7ef;
  color: #17623b;
}

.fish-db-stat-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 0.84rem;
}

.fish-db-open {
  justify-self: start;
}

.fish-detail-title-block {
  min-width: 0;
}

.fish-detail-aliases {
  color: var(--muted, #5f6b76);
}

.fish-detail-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.fish-detail-metrics {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.fish-detail-metrics article {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--line, #d7e1e8);
  border-radius: 12px;
  background: var(--surface, #fff);
}

.fish-detail-metrics span {
  font-size: 0.76rem;
  color: var(--muted, #5f6b76);
}

.fish-detail-metrics strong {
  font-size: 1.05rem;
}

.fish-detail-section {
  padding: 18px 20px;
}

.fish-detail-section-head {
  margin-bottom: 12px;
}

.fish-detail-summary {
  font-size: 1rem;
  line-height: 1.75;
}

.fish-profile-columns,
.fish-detail-split,
.fish-detail-gear-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.fish-profile-columns article,
.fish-detail-split article,
.fish-detail-gear-grid article {
  padding: 12px 14px;
  border: 1px solid var(--line, #d7e1e8);
  border-radius: 12px;
  background: var(--surface-soft, #f8fafc);
}

.fish-profile-columns h3,
.fish-detail-split h3,
.fish-detail-gear-grid strong,
.fish-detail-gear-grid p {
  margin-top: 0;
}

.fish-profile-columns p:last-child,
.fish-detail-split p:last-child,
.fish-detail-gear-grid p:last-child {
  margin-bottom: 0;
}

.fish-detail-collapsible {
  margin-top: 10px;
  border-top: 1px solid var(--line, #d7e1e8);
  padding-top: 10px;
}

.fish-detail-collapsible summary {
  cursor: pointer;
  font-weight: 700;
}

.fish-detail-sources,
.fish-detail-link-list {
  margin-bottom: 0;
}

.fish-detail-record-list {
  display: grid;
  gap: 6px;
  margin-top: 10px;
}

.fish-detail-record-row {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--surface-soft, #f8fafc);
}

.fish-detail-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.fish-detail-chip-grid > span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  padding: 6px 10px;
  border: 1px solid var(--line, #d7e1e8);
  border-radius: 999px;
  background: var(--surface-soft, #f8fafc);
}

.fish-detail-gear-grid article {
  display: grid;
  gap: 4px;
}

.fish-detail-gear-grid article > span,
.fish-detail-gear-grid small {
  color: var(--muted, #5f6b76);
  font-size: 0.78rem;
}

.fish-detail-section.is-future {
  background: var(--surface-soft, #f8fafc);
}

@media (max-width: 920px) {
  .fish-detail-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .fish-db-grid,
  .fish-profile-columns,
  .fish-detail-split,
  .fish-detail-gear-grid {
    grid-template-columns: 1fr;
  }

  .fish-db-hero,
  .fish-detail-hero {
    display: grid;
  }

  .fish-detail-actions {
    justify-content: flex-start;
  }

  .fish-detail-record-row {
    grid-template-columns: 1fr;
    gap: 2px;
  }
}

@media (max-width: 520px) {
  .fish-db-hero,
  .fish-detail-hero,
  .fish-detail-section {
    padding: 15px;
  }

  .fish-db-search-row {
    display: grid;
  }

  .fish-db-open,
  .fish-db-search-row .button-link,
  .fish-db-search-row button,
  .fish-detail-actions .button-link {
    width: 100%;
    text-align: center;
  }

  .fish-detail-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ===== style-170r3-trip-fish.css ===== */
.fish-db-hero-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.fish-db-related-note {
  display: flex;
  gap: 10px;
  align-items: baseline;
  padding: 12px 16px;
}

.fish-db-related-note strong {
  white-space: nowrap;
}

.fish-db-related-note span,
.fish-db-last-activity {
  color: var(--muted, #5f6b76);
  font-size: 0.86rem;
}

.fish-db-card.has-upcoming {
  border-width: 2px;
}

.fish-db-link-state.is-upcoming {
  background: #e8f7ef;
  color: #17623b;
}

.fish-db-relation-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.fish-db-relation-row > span {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-height: 26px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--surface-soft, #f8fafc);
  border: 1px solid var(--line, #d7e1e8);
  font-size: 0.8rem;
}

.fish-db-last-activity {
  margin: 0;
}

.fish-db-empty {
  margin-top: 10px;
}

@media (max-width: 720px) {
  .fish-db-hero-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .fish-db-related-note {
    display: grid;
  }
}


/* ===== style-170r4-port-master.css ===== */
.port-database-container { max-width: 1180px; }
.port-database-page { display: grid; gap: 18px; }
.port-database-hero h1, .port-detail-hero h1 { margin: 4px 0 8px; }
.port-database-hero details, .port-detail-hero details { margin-top: 12px; }
.port-search-form { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.port-search-form label { flex: 1 1 320px; }
.port-section-heading { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; margin-bottom: 10px; }
.port-section-heading h2 { margin: 0; }
.port-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.port-card { border: 1px solid var(--border, #d8e0e7); border-radius: 14px; padding: 14px; display: grid; gap: 10px; background: var(--card-bg, #fff); }
.port-card h3, .port-card p { margin: 0; }
.port-card-stats { display: flex; gap: 8px; flex-wrap: wrap; font-size: .9rem; }
.port-card-stats span { padding: 4px 8px; border-radius: 999px; background: rgba(2,132,199,.08); }
.port-admin-form { display: grid; gap: 12px; }
.port-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.port-unlinked-list { display: grid; gap: 8px; }
.port-unlinked-list article { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-top: 1px solid var(--border, #d8e0e7); }
.port-unlinked-list article > div { display: grid; gap: 3px; }
.port-detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; }
.port-detail-split { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.port-detail-split h3 { margin-top: 0; }
.port-detail-split ul { margin: 0; padding-left: 20px; }
.port-fish-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.port-fish-grid a { display: flex; justify-content: space-between; gap: 8px; padding: 10px 12px; border: 1px solid var(--border, #d8e0e7); border-radius: 12px; text-decoration: none; }
.fish-detail-chip-grid a { display: inline-flex; align-items: baseline; gap: 4px; text-decoration: none; }
@media (max-width: 720px) {
  .port-form-grid, .port-detail-split { grid-template-columns: 1fr; }
  .port-unlinked-list article { align-items: stretch; flex-direction: column; }
  .port-unlinked-list .button-link { width: 100%; text-align: center; }
}


/* ===== style-170r5-charter-master.css ===== */
/* KMA FISHING CLUB 1.70r5 - Charter / Boat Shop Master Foundation */
.charter-database-page{display:grid;gap:18px}.charter-database-hero h1,.charter-detail-hero h1{margin-bottom:6px}.charter-search-form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.charter-search-form label{flex:1 1 300px}.charter-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.charter-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.charter-card{border:1px solid var(--border-color,#d8dce2);border-radius:14px;padding:14px;background:var(--card-bg,#fff);display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.charter-card h3{margin:0 0 4px}.charter-card p{margin:0;color:var(--muted,#667085)}.charter-card-stats{display:flex;flex-direction:column;gap:4px;text-align:right;white-space:nowrap;font-size:.92rem}.charter-admin-form{display:grid;gap:12px}.charter-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.charter-unlinked-list{display:grid;gap:8px}.charter-unlinked-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--border-color,#e2e5ea);padding-top:10px}.charter-unlinked-list article div{display:grid;gap:3px}.charter-unlinked-list span{color:var(--muted,#667085);font-size:.92rem}.charter-detail-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.charter-aliases{color:var(--muted,#667085)}.charter-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.charter-info-grid div{border:1px solid var(--border-color,#e2e5ea);border-radius:10px;padding:10px}.charter-info-grid dt{font-weight:700;margin-bottom:4px}.charter-info-grid dd{margin:0;white-space:pre-wrap}.charter-detail-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.charter-detail-split article{border:1px solid var(--border-color,#e2e5ea);border-radius:12px;padding:12px}.charter-fish-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.charter-fish-grid a{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--border-color,#e2e5ea);border-radius:10px;padding:10px;text-decoration:none}.charter-fish-grid span{color:var(--muted,#667085);font-size:.9rem}@media(max-width:720px){.charter-card{display:grid}.charter-card-stats{text-align:left;flex-direction:row;flex-wrap:wrap}.charter-form-grid,.charter-info-grid,.charter-detail-split{grid-template-columns:1fr}.charter-unlinked-list article{align-items:flex-start;flex-direction:column}.charter-unlinked-list .button-link{width:100%;text-align:center}}


/* ===== style-170r6-location-detail.css ===== */
/* KMA FISHING CLUB 1.70r6 - Port / Charter Detail Hub */
.location-detail-hub{display:grid;gap:18px}.location-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin:14px 0}.location-summary-grid>div{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--border-color,#dfe3e8);border-radius:12px;background:var(--card-bg,#fff)}.location-summary-grid strong{font-size:1.25rem;line-height:1.1}.location-summary-grid span{font-size:.84rem;color:var(--muted,#667085)}.location-summary-grid.is-personal>div{background:rgba(2,132,199,.045)}.location-section-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:10px}.location-section-heading h2,.location-section-heading p{margin:0}.location-section-heading>p{color:var(--muted,#667085);font-size:.92rem;text-align:right}.location-record-list{display:grid;gap:8px}.location-record-list a{display:flex;justify-content:space-between;gap:16px;border-top:1px solid var(--border-color,#e2e5ea);padding:9px 0;text-decoration:none}.location-record-list a:first-child{border-top:0}.location-record-list a>span:last-child{color:var(--muted,#667085);text-align:right}.location-gear-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.location-gear-grid article{display:grid;gap:4px;border:1px solid var(--border-color,#e2e5ea);border-radius:12px;padding:11px}.location-gear-grid article span,.location-gear-grid article small{color:var(--muted,#667085)}.location-gear-category{font-size:.78rem;font-weight:700;text-transform:uppercase}.location-practical-section .backup-note{margin-top:12px}@media(max-width:720px){.location-section-heading{align-items:flex-start;flex-direction:column}.location-section-heading>p{text-align:left}.location-record-list a{display:grid;gap:4px}.location-record-list a>span:last-child{text-align:left}.location-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* ===== style-170r7-experience.css ===== */
/* KMA FISHING CLUB 1.70r7 - Experience Comment Foundation */
.trip-gear-summary-card.is-experience {
  text-decoration: none;
  color: inherit;
}

.trip-record-mode-link.is-experience {
  min-width: 0;
}

.trip-experience-card {
  display: grid;
  gap: 14px;
}

.trip-experience-card.is-locked {
  opacity: .88;
}

.trip-gear-step.is-experience {
  white-space: nowrap;
}

.trip-experience-help,
.club-experience-notes-help {
  margin: 0;
  line-height: 1.7;
}

.trip-experience-form {
  display: grid;
  gap: 14px;
}

.trip-experience-form > label {
  display: grid;
  gap: 7px;
  font-weight: 700;
}

.trip-experience-form textarea {
  width: 100%;
  min-height: 120px;
  resize: vertical;
  box-sizing: border-box;
}

.trip-experience-form small,
.trip-experience-status,
.club-experience-note-author small {
  font-weight: 400;
  opacity: .78;
}

.trip-experience-visibility {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  border: 0;
  padding: 0;
  margin: 0;
}

.trip-experience-visibility legend {
  grid-column: 1 / -1;
  margin-bottom: 3px;
  font-weight: 700;
}

.trip-experience-visibility label {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  padding: 11px 12px;
  border: 1px solid var(--line, #d8dee7);
  border-radius: 12px;
  cursor: pointer;
}

.trip-experience-visibility span {
  display: grid;
  gap: 3px;
}

.trip-experience-status {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.club-experience-notes {
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--line, #d8dee7);
  border-radius: 14px;
}

.club-experience-notes-heading,
.club-experience-note-author {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: baseline;
}

.club-experience-notes-heading h3,
.club-experience-note-item p {
  margin: 0;
}

.trip-experience-kicker {
  font-size: .74rem;
  letter-spacing: .08em;
  font-weight: 800;
  opacity: .68;
}

.club-experience-note-list {
  display: grid;
  gap: 9px;
  margin-top: 10px;
}

.club-experience-note-item {
  display: grid;
  gap: 7px;
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(127, 127, 127, .07);
}

.club-experience-note-item p {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.65;
}

@media (max-width: 720px) {
  .trip-experience-visibility {
    grid-template-columns: 1fr;
  }
  .club-experience-notes-heading,
  .club-experience-note-author {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }
}


/* ===== style-170r8-knowledge-source.css ===== */
.knowledge-source-page{display:grid;gap:18px;max-width:1180px;margin:0 auto}.knowledge-source-hero h1{margin:4px 0 8px}.knowledge-source-help{margin-top:12px}.knowledge-source-help summary{cursor:pointer;font-weight:700}.knowledge-source-help div{margin-top:10px}.knowledge-source-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.knowledge-source-stats article{border:1px solid var(--border-color,#d8dce2);border-radius:12px;padding:12px;background:var(--card-bg,#fff);display:grid;gap:4px}.knowledge-source-stats strong{font-size:1.5rem}.knowledge-source-stats span{color:var(--muted,#667085);font-size:.9rem}.knowledge-source-download{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--border-color,#d8dce2);border-radius:14px;padding:16px;background:var(--card-bg,#fff)}.knowledge-source-download h2,.knowledge-source-download p{margin-top:0}.knowledge-source-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.knowledge-source-split article{border:1px solid var(--border-color,#e2e5ea);border-radius:12px;padding:14px}.knowledge-source-split h3{margin-top:0}.knowledge-source-split ul{margin-bottom:0;padding-left:1.25rem}.knowledge-source-section-heading{display:flex;justify-content:space-between;gap:12px;align-items:end}.knowledge-source-note-list{display:grid;gap:10px}.knowledge-source-note{border:1px solid var(--border-color,#e2e5ea);border-radius:12px;padding:12px;background:var(--card-bg,#fff)}.knowledge-source-note-head{display:flex;justify-content:space-between;gap:12px}.knowledge-source-note p{white-space:pre-wrap;margin:8px 0}.knowledge-source-note small,.knowledge-source-section-heading small{color:var(--muted,#667085)}.knowledge-source-empty{color:var(--muted,#667085)}@media(max-width:760px){.knowledge-source-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.knowledge-source-download,.knowledge-source-note-head{align-items:flex-start;flex-direction:column}.knowledge-source-download .button-link{width:100%;text-align:center}.knowledge-source-split{grid-template-columns:1fr}.knowledge-source-section-heading{align-items:flex-start;flex-direction:column}}

/* ===== style-170r9-knowledge-import.css ===== */
.knowledge-import-card,.knowledge-current-section,.knowledge-preview-hero,.knowledge-preview-card,.knowledge-confirm-card,.knowledge-preview-warning,.location-knowledge-section{background:var(--surface,#fff);border:1px solid var(--line,#d9dee7);border-radius:14px;padding:18px;margin:16px 0}.knowledge-import-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:18px;align-items:end}.knowledge-import-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.knowledge-import-form input[type=file]{max-width:100%}.knowledge-current-grid,.knowledge-preview-list{display:grid;gap:12px}.knowledge-current-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.knowledge-current-grid article{border:1px solid var(--line,#d9dee7);border-radius:12px;padding:14px;background:var(--surface-soft,#f7f8fb)}.knowledge-preview-hero dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.knowledge-preview-hero dl div{padding:10px;border-radius:10px;background:var(--surface-soft,#f7f8fb);min-width:0}.knowledge-preview-hero dt{font-size:.78rem;opacity:.7}.knowledge-preview-hero dd{margin:4px 0 0;overflow-wrap:anywhere}.knowledge-preview-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.knowledge-preview-card-head h2{margin:.15rem 0}.knowledge-preview-current,.knowledge-preview-new{border-radius:10px;padding:12px;margin:10px 0}.knowledge-preview-current{background:var(--surface-soft,#f7f8fb)}.knowledge-preview-new{background:rgba(40,120,90,.08)}.knowledge-preview-meta,.knowledge-confirm-card p,.knowledge-import-card .backup-note{font-size:.85rem;opacity:.75}.knowledge-preview-warning{border-color:#d99b34;background:#fff8e8}.knowledge-confirm-card form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.kma-knowledge-summary{font-size:1.05rem;line-height:1.75}.kma-knowledge-display ul,.location-knowledge-section ul{margin:.4rem 0 1rem;padding-left:1.25rem}@media(max-width:720px){.knowledge-import-card{grid-template-columns:1fr}.knowledge-preview-card-head{display:block}.knowledge-confirm-card form>*{width:100%;text-align:center}}


/* ===== style-170r10-knowledge-cleanup.css ===== */
.knowledge-source-stats{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}.knowledge-cleanup-card,.knowledge-cleanup-preview-page .knowledge-preview-hero,.knowledge-cleanup-preview-list .knowledge-preview-card{background:var(--surface,#fff);border:1px solid var(--line,#d9dee7);border-radius:14px;padding:18px}.knowledge-cleanup-form{display:grid;gap:12px}.knowledge-cleanup-list{display:grid;gap:10px}.knowledge-cleanup-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line,#d9dee7);border-radius:12px;padding:12px;cursor:pointer}.knowledge-cleanup-row input{margin-top:.35rem}.knowledge-cleanup-body{display:grid;gap:4px}.knowledge-cleanup-body small{opacity:.72}.knowledge-cleanup-note,.knowledge-cleanup-note-full{white-space:pre-wrap;overflow-wrap:anywhere}.knowledge-cleanup-note{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:.25rem 0}.knowledge-cleanup-actions{display:flex;gap:10px;flex-wrap:wrap}.knowledge-cleanup-preview-page{display:grid;gap:16px;max-width:1080px;margin:0 auto}.knowledge-cleanup-preview-list{display:grid;gap:12px}.knowledge-cleanup-note-full{padding:12px;border-radius:10px;background:var(--surface-soft,#f7f8fb);line-height:1.7}.knowledge-cleanup-preview-list code{overflow-wrap:anywhere}.knowledge-confirm-card button.danger{font-weight:700}@media(max-width:720px){.knowledge-cleanup-actions>*{width:100%}.knowledge-cleanup-row{grid-template-columns:auto minmax(0,1fr)}.knowledge-cleanup-preview-list .knowledge-preview-card{padding:14px}}

/* ===== style-170r11-facility-master.css ===== */
.facility-database-page{display:grid;gap:16px}.facility-database-hero h1,.facility-detail-hero h1{margin:.15rem 0 .5rem}.facility-search-form{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto auto;gap:10px;align-items:end}.facility-search-form label{margin:0}.facility-section-heading,.facility-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.facility-title-row{justify-content:flex-start;flex-wrap:wrap}.facility-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.facility-card{display:grid;gap:8px;padding:14px;border:1px solid var(--border-color,#d9dee7);border-radius:14px;background:var(--card-bg,#fff)}.facility-card h3{margin:0}.facility-card p{margin:.25rem 0 0}.facility-category{display:inline-flex;width:max-content;padding:3px 9px;border-radius:999px;background:rgba(80,110,150,.11);font-size:.82rem;font-weight:700}.facility-card-stats{display:flex;gap:8px;flex-wrap:wrap;font-size:.88rem}.facility-card-stats span{padding:3px 7px;border-radius:999px;background:rgba(0,0,0,.05)}.facility-admin-form{display:grid;gap:12px}.facility-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.facility-detail-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.facility-detail-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.facility-detail-split article{padding:12px;border:1px solid var(--border-color,#d9dee7);border-radius:12px}.facility-fish-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.facility-fish-grid a{display:flex;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--border-color,#d9dee7);border-radius:12px;text-decoration:none}.trip-facility-select{grid-column:1/-1;border:1px solid var(--border-color,#d9dee7);border-radius:12px;padding:12px}.trip-facility-select legend{font-weight:700;padding:0 6px}.trip-facility-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-bottom:8px}.trip-facility-option{display:flex!important;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--border-color,#d9dee7);border-radius:10px;margin:0!important}.trip-facility-option input{width:auto!important;margin-top:.2rem}.trip-facility-option span{display:grid;gap:2px}.trip-facility-option small{font-weight:400}@media(max-width:720px){.facility-search-form,.facility-form-grid,.facility-detail-split{grid-template-columns:1fr}.facility-search-form .button-link,.facility-search-form button{width:100%}.trip-facility-option-grid{grid-template-columns:1fr}}


/* ===== style-170r13-database-search.css ===== */
.database-search-entry,
.database-search-hero,
.database-search-group,
.database-search-empty {
  margin-top: 1rem;
}

.database-search-entry-heading,
.database-search-group-heading,
.database-search-result-title-row,
.database-search-form-row {
  display: flex;
  align-items: center;
  gap: .75rem;
}

.database-search-entry-heading,
.database-search-group-heading {
  justify-content: space-between;
}

.database-search-entry-heading h2,
.database-search-group-heading h2,
.database-search-empty h2 {
  margin: 0;
}

.database-search-entry-heading > p {
  margin: 0;
  max-width: 48rem;
  color: var(--muted, #64748b);
}

.database-search-form {
  display: flex;
  gap: .65rem;
  margin-top: .9rem;
}

.database-search-form input[type="search"] {
  flex: 1 1 24rem;
  min-width: 0;
}

.database-search-form.is-page {
  display: block;
}

.database-search-form.is-page > label {
  display: block;
  margin-bottom: .35rem;
  font-weight: 700;
}

.database-search-form-row input[type="search"] {
  flex: 1 1 auto;
}

.database-search-form-row select {
  flex: 0 0 12rem;
  max-width: 38vw;
}

.database-search-summary {
  margin: 1rem 0 .35rem;
  padding: .75rem 1rem;
  border-radius: .75rem;
  background: rgba(14, 116, 144, .08);
}

.database-search-results {
  display: grid;
  gap: .5rem;
  margin-top: .75rem;
}

.database-search-result {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: .72rem .8rem;
  border: 1px solid rgba(100, 116, 139, .25);
  border-radius: .75rem;
  color: inherit;
  text-decoration: none;
  background: rgba(255, 255, 255, .72);
}

.database-search-result:hover,
.database-search-result:focus-visible {
  border-color: rgba(14, 116, 144, .7);
  background: rgba(14, 116, 144, .06);
}

.database-search-result-main {
  min-width: 0;
}

.database-search-result-title-row {
  flex-wrap: wrap;
}

.database-search-result-badge {
  display: inline-flex;
  align-items: center;
  min-height: 1.6rem;
  padding: .08rem .48rem;
  border-radius: 999px;
  background: rgba(14, 116, 144, .1);
  color: #0e7490;
  font-size: .78rem;
  font-weight: 700;
}

.database-search-result-subtitle,
.database-search-result-detail {
  display: block;
  margin-top: .18rem;
  overflow-wrap: anywhere;
}

.database-search-result-subtitle {
  color: #475569;
  font-size: .9rem;
}

.database-search-result-detail,
.database-search-more {
  color: #64748b;
  font-size: .84rem;
}

.database-search-result-open {
  flex: 0 0 auto;
  font-weight: 700;
  color: #0e7490;
}

.database-search-more {
  margin: .65rem 0 0;
}

@media (max-width: 720px) {
  .database-search-entry-heading,
  .database-search-group-heading,
  .database-search-form,
  .database-search-form-row {
    align-items: stretch;
    flex-direction: column;
  }

  .database-search-form-row select {
    flex-basis: auto;
    max-width: none;
    width: 100%;
  }

  .database-search-result {
    align-items: flex-start;
  }
}


/* ===== style-170r14-database-list.css ===== */
/* 1.70r14 Database List UX Foundation */
.database-list-ux .compact-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px;
}
.database-list-ux .compact-hero h1 { margin: .1rem 0 .35rem; }
.database-list-ux .compact-hero p { margin: 0; }
.database-list-ux .compact-hero details { flex: 0 0 auto; max-width: 30rem; }
.database-list-ux .compact-filter-card { padding: 12px 14px; }
.database-list-ux .compact-section-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.database-list-ux .compact-section-heading h2,
.database-list-ux .compact-section-heading p { margin: 0; }
.database-list-ux .compact-section-heading p { color: var(--muted,#64748b); font-size: .9rem; }

.database-index-list,
.entity-list {
  border: 1px solid var(--border-color, var(--line, #d8e0e7));
  border-radius: 12px;
  background: var(--card-bg, var(--surface, #fff));
  overflow: hidden;
}
.database-index-row,
.entity-list-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 54px;
  padding: 9px 12px;
  border-top: 1px solid var(--border-color, var(--line, #e2e8f0));
  color: inherit;
  text-decoration: none;
  background: transparent;
}
.database-index-row:first-child,
.entity-list-row:first-child { border-top: 0; }
.database-index-row[href]:hover,
.database-index-row[href]:focus-visible,
.entity-list-row:hover,
.entity-list-row:focus-visible {
  background: rgba(14,116,144,.055);
  outline: none;
}
.database-index-row.is-disabled { opacity: .7; }
.database-index-main,
.entity-list-primary { min-width: 0; flex: 1 1 auto; }
.database-index-main { display: grid; gap: 2px; }
.database-index-main > span,
.entity-list-subtitle,
.entity-list-detail { color: var(--muted,#64748b); font-size: .86rem; overflow-wrap: anywhere; }
.entity-list-detail { display: block; margin-top: 2px; }
.database-index-meta,
.entity-list-stats {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
  font-size: .84rem;
  color: var(--muted,#64748b);
}
.entity-list-stats span { white-space: nowrap; }
.entity-list-leading { flex: 0 0 auto; }
.entity-list-title-line { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.database-list-arrow { flex: 0 0 auto; font-size: 1.35rem; line-height: 1; color: #64748b; }
.database-list-status {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 1px 7px;
  border-radius: 999px;
  background: #eef2f6;
  color: #5d6873;
  font-size: .75rem;
  font-weight: 700;
  white-space: nowrap;
}
.database-list-status.is-ready { background: #e8f7ef; color: #17623b; }
.database-list-status.is-upcoming { background: #e8f7ef; color: #17623b; }
.compact-category-badge { margin: 0; white-space: nowrap; }

.database-list-ux .fish-db-grid,
.database-list-ux .port-card-grid,
.database-list-ux .charter-card-grid,
.database-list-ux .facility-card-grid { display: block; }
.database-list-ux .fish-db-card,
.database-list-ux .port-card,
.database-list-ux .charter-card,
.database-list-ux .facility-card { border-radius: 0; }

.compact-search-entry {
  padding: 12px 14px;
  border: 1px solid var(--border-color, var(--line, #d8e0e7));
  border-radius: 12px;
  background: var(--card-bg, var(--surface,#fff));
}
.compact-search-entry.database-search-entry { margin-top: 0; }
.compact-search-group { margin-top: 16px; }
.compact-search-group .database-search-results { margin-top: 0; gap: 0; }
.database-list-ux .database-search-result {
  border: 0;
  border-top: 1px solid var(--border-color, var(--line, #e2e8f0));
  border-radius: 0;
  padding: 9px 12px;
  background: transparent;
}
.database-list-ux .database-search-result:first-child { border-top: 0; }
.database-list-ux .database-search-result:hover,
.database-list-ux .database-search-result:focus-visible { background: rgba(14,116,144,.055); }
.database-list-ux .database-search-result-badge { min-height: 1.35rem; font-size: .72rem; }

@media (max-width: 760px) {
  .database-list-ux .compact-hero { display: grid; gap: 10px; padding: 14px; }
  .database-list-ux .compact-hero details { max-width: none; }
  .database-index-row,
  .entity-list-row { align-items: flex-start; gap: 8px; min-height: 0; padding: 10px 11px; }
  .database-index-meta { align-self: center; }
  .entity-list-stats { justify-content: flex-start; flex-basis: auto; }
  .entity-list-row { flex-wrap: wrap; }
  .entity-list-primary { flex-basis: calc(100% - 32px); }
  .entity-list-stats { order: 3; width: 100%; padding-left: 0; }
  .entity-list-row > .database-list-arrow { margin-left: auto; }
  .entity-list-leading + .entity-list-primary { flex-basis: calc(100% - 120px); }
  .database-index-main > span { display: none; }
  .compact-section-heading { align-items: center; }
}


/* ===== style-170r15-fish-detail-ux.css ===== */
/* 1.70r15 Fish List / Fish Detail UX */
.fish-detail-intro {
  display: grid;
  grid-template-columns: minmax(210px, 340px) minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  padding: 16px 18px;
}
.fish-detail-standard-image {
  min-width: 0;
  border-radius: 12px;
  overflow: hidden;
  background: var(--surface-soft, #f8fafc);
  border: 1px solid var(--line, #d7e1e8);
}
.fish-detail-standard-image img {
  display: block;
  width: 100%;
  max-height: 260px;
  object-fit: contain;
  background: #fff;
}
.fish-detail-image-placeholder {
  display: grid;
  place-items: center;
  min-height: 180px;
  color: var(--muted, #64748b);
  text-align: center;
  font-weight: 700;
  line-height: 1.5;
}
.fish-detail-intro-copy { min-width: 0; }
.fish-detail-intro-copy h2 { margin: .15rem 0 .65rem; }
.fish-detail-intro-copy .eyebrow { margin: 0; }
.fish-detail-intro-copy small { color: var(--muted, #64748b); }
.fish-detail-intro-trivia {
  margin: 0 0 .7rem;
  font-size: 1.08rem;
  line-height: 1.75;
  font-weight: 650;
}
.fish-list-row { min-height: 48px; }
.fish-list-row .entity-list-subtitle { line-height: 1.35; }
@media (max-width: 760px) {
  .fish-detail-intro { grid-template-columns: 1fr; padding: 14px; }
  .fish-detail-standard-image { max-width: 480px; width: 100%; }
  .fish-detail-standard-image img { max-height: 240px; }
  .fish-detail-intro-trivia { font-size: 1rem; }
}


/* ===== style-170r16-responsive-official-import.css ===== */
/* 1.70r16 Responsive UX + Official Website Import Core */

/* Cross-search must never let a flex-grow search input become a giant vertical box. */
.database-search-page .database-search-form-row > input[type="search"] {
  box-sizing: border-box;
  min-height: 44px;
  height: 44px;
  padding: 9px 12px;
}

.official-import-page { display: grid; gap: 14px; }
.official-import-hero h1 { margin: .15rem 0 .35rem; }
.official-import-hero > p { margin: .3rem 0; }
.official-import-status { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.official-import-status span { padding: 3px 8px; border-radius: 999px; background: #eef6fb; color: #365269; font-size: .78rem; font-weight: 800; }
.official-import-step { padding: 16px 18px; }
.official-import-step-title { display: flex; align-items: flex-start; gap: 10px; }
.official-import-step-title > span { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 28px; border-radius: 50%; background: #0b78c8; color: #fff; font-weight: 900; }
.official-import-step-title h2 { margin: 0; font-size: 1.05rem; }
.official-import-step-title p { margin: 3px 0 0; color: var(--muted,#64748b); }
.official-import-url-form,
.official-import-upload-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 10px; margin-top: 12px; }
.official-import-url-form label,
.official-import-upload-form label { min-width: 0; }
/* 1.71r88: width/height are for text and file controls only, not choices.
   r85 added radio buttons inside the upload form; applying width:100% to them
   squeezes the text into vertical columns and inflates the circles. */
.official-import-url-form input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]),
.official-import-upload-form input:not([type="radio"]):not([type="checkbox"]):not([type="hidden"]) { box-sizing: border-box; width: 100%; min-height: 44px; }
.official-import-json { max-height: 360px; overflow: auto; padding: 10px; border: 1px solid var(--line,#d8e0e7); border-radius: 9px; background: #f8fafc; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .78rem; }
.official-import-diff-list { border: 1px solid var(--line,#d8e0e7); border-radius: 10px; overflow: hidden; }
.official-import-diff-row { display: grid; grid-template-columns: 9rem minmax(0,1fr) minmax(0,1fr); gap: 10px; padding: 9px 11px; border-top: 1px solid #e2e8f0; }
.official-import-diff-row:first-child { border-top: 0; }
.official-import-diff-row > strong { align-self: start; }
.official-import-diff-row div > span { display: block; margin-bottom: 3px; color: #64748b; font-size: .72rem; font-weight: 900; }
.official-import-diff-row pre { margin: 0; padding: 7px; border-radius: 7px; background: #f8fafc; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .76rem; }
.official-import-source-list { margin: 0; padding-left: 1.2rem; }
.official-import-source-list li { margin: .35rem 0; overflow-wrap: anywhere; }
.official-import-source-list span { display: block; color: #64748b; font-size: .82rem; }
.official-import-preview-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.official-import-entry { margin: 8px 0 14px; }

@media (max-width: 760px) {
  .database-search-page .database-search-hero { padding: 12px !important; }
  .database-search-page .database-search-hero h1 { font-size: clamp(1.55rem, 7vw, 2rem); }
  .database-search-page .database-search-hero > div > p:last-child { font-size: .92rem; }
  .database-search-page .database-search-form.is-page { margin-top: 10px; }
  .database-search-page .database-search-form-row {
    display: grid !important;
    grid-template-columns: 1fr;
    align-items: stretch !important;
    gap: 8px;
  }
  .database-search-page .database-search-form-row > input[type="search"] {
    flex: none !important;
    width: 100%;
    min-height: 42px !important;
    height: 42px !important;
    padding: 8px 10px !important;
  }
  .database-search-page .database-search-form-row > select,
  .database-search-page .database-search-form-row > button {
    width: 100%;
    min-height: 42px;
    height: 42px;
    margin: 0;
  }

  /* Override the historical phone-card conversion for the member directory.
     One member stays a compact roster row instead of becoming a tall card. */
  .member-directory-table-wrap {
    overflow: hidden !important;
    border: 1px solid var(--line,#d8e0e7) !important;
    border-radius: 10px !important;
    background: #fff !important;
    box-shadow: none !important;
  }
  .member-directory-table { display: block !important; width: 100% !important; min-width: 0 !important; }
  .member-directory-table thead { display: none !important; }
  .member-directory-table tbody { display: block !important; width: 100% !important; }
  .member-directory-table tr {
    display: grid !important;
    grid-template-columns: 4.6rem minmax(6rem,.75fr) minmax(0,2fr);
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-top: 1px solid #e2e8f0 !important;
    border-radius: 0 !important;
    background: #fff;
    box-shadow: none !important;
  }
  .member-directory-table tr:first-child { border-top: 0 !important; }
  .member-directory-table .member-directory-chief { background: #fff9e8; }
  .member-directory-table td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 7px 8px !important;
    border: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    font-size: .8rem !important;
    line-height: 1.35;
  }
  .member-directory-table td::before { content: none !important; display: none !important; }
  .member-directory-name { font-size: .84rem !important; }
  .member-directory-trip-cell { display: block !important; }
  .member-directory-trip-cell span { display: inline !important; white-space: normal !important; }
  .member-directory-trip-cell span + span::before { content: " / " !important; color: var(--muted,#64748b); }

  .official-import-url-form,
  .official-import-upload-form { grid-template-columns: 1fr; }
  .official-import-step { padding: 13px; }
  .official-import-diff-row { grid-template-columns: 1fr; gap: 5px; }
}

@media (max-width: 520px) {
  .member-directory-heading > p:last-child { font-size: .86rem; }
  .member-directory-table tr { grid-template-columns: 4.4rem minmax(0,1fr); }
  .member-directory-table td:nth-child(3) { grid-column: 1 / -1; padding-top: 2px !important; color: #475569; }
}


/* ===== 1.70r18 Compact Search / Static Performance Fix ===== */
/* Database Hub cross-search used flex-basis:24rem. When the historical
   responsive rule changed the flex axis to vertical, that basis became height. */
.database-hub-page .database-search-form > input[type="search"],
.database-search-page .database-search-form-row > input[type="search"] {
  box-sizing: border-box;
  min-width: 0;
  min-height: 44px !important;
  height: 44px !important;
  padding: 9px 12px !important;
  margin: 0 !important;
  line-height: 1.25;
}
.database-hub-page .database-search-form > input[type="search"] {
  flex: 1 1 auto !important;
  flex-basis: auto !important;
}
.database-hub-page .database-search-form > button,
.database-search-page .database-search-form-row > select,
.database-search-page .database-search-form-row > button {
  min-height: 44px;
  height: 44px;
  margin: 0;
}
@media (max-width: 720px) {
  .database-hub-page .compact-search-entry { padding: 10px 12px; }
  .database-hub-page .database-search-entry-heading { gap: 5px; }
  .database-hub-page .database-search-form {
    display: grid !important;
    grid-template-columns: minmax(0,1fr);
    gap: 8px;
    align-items: stretch !important;
    margin-top: 8px;
  }
  .database-hub-page .database-search-form > input[type="search"] {
    display: block !important;
    flex: none !important;
    flex-basis: auto !important;
    width: 100% !important;
    min-height: 42px !important;
    height: 42px !important;
    padding: 8px 10px !important;
  }
  .database-hub-page .database-search-form > button {
    width: 100%; min-height: 42px; height: 42px;
  }
  .database-search-page .database-search-form-row > input[type="search"],
  .database-search-page .database-search-form-row > select,
  .database-search-page .database-search-form-row > button {
    min-height: 42px !important;
    height: 42px !important;
  }
}

/* 1.70r20 Fish Database UX Rebuild */
.fish-r20-list-page,.fish-r20-detail-page,.fish-r20-edit-page,.fish-r20-admin-page{display:grid;gap:1rem}
.fish-r20-list-head,.fish-r20-admin-head,.fish-r20-edit-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:.35rem .1rem}
.fish-r20-list-head h1,.fish-r20-admin-head h1,.fish-r20-edit-head h1{margin:.15rem 0 .25rem}
.fish-r20-lead,.fish-r20-list-head p,.fish-r20-admin-head p,.fish-r20-edit-head p{margin:.2rem 0;color:var(--muted,#68758a)}
.fish-r20-head-actions,.fish-r20-fish-actions,.fish-r20-admin-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}
.fish-r20-search{display:grid;gap:.35rem;padding:.75rem 0}
.fish-r20-search>label{font-weight:700}
.fish-r20-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.5rem}
.fish-r20-search-row input{height:42px;min-height:42px;margin:0;padding:.55rem .75rem}
.fish-r20-search-row button,.fish-r20-search-row .button-link{min-height:42px;margin:0;padding:.55rem .9rem}
.fish-r20-list-section{display:grid;gap:.5rem}
.fish-r20-section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.fish-r20-section-heading h2{margin:.2rem 0}
.fish-r20-table{display:grid;border-top:1px solid var(--border,#d7e1eb)}
.fish-r20-row{display:grid;grid-template-columns:minmax(12rem,1.6fr) minmax(9rem,.8fr) minmax(8rem,.75fr) auto;gap:.75rem;align-items:center;padding:.72rem .45rem;border-bottom:1px solid var(--border,#d7e1eb);text-decoration:none;color:inherit;background:transparent}
.fish-r20-row:hover{background:rgba(18,111,165,.045)}
.fish-r20-name{display:grid;gap:.15rem;min-width:0}
.fish-r20-name strong{font-size:1.05rem;color:var(--text,#142033)}
.fish-r20-name small,.fish-r20-next span,.fish-r20-stats{color:var(--muted,#68758a)}
.fish-r20-next,.fish-r20-stats{display:flex;gap:.45rem;flex-wrap:wrap;font-size:.92rem}
.fish-r20-next strong{color:#0b6ea8}
.fish-r20-arrow{font-size:1.6rem;color:#0b6ea8}

.fish-r20-fishbook-hero{display:grid;grid-template-columns:minmax(240px,36%) minmax(0,1fr);gap:1.4rem;align-items:center;padding:1rem;border:1px solid var(--border,#d7e1eb);border-radius:22px;background:#fff}
.fish-r20-photo,.fish-r20-edit-photo{min-width:0}
.fish-r20-photo img,.fish-r20-edit-photo img{display:block;width:100%;max-height:420px;object-fit:contain;border-radius:16px;background:#f5f8fb}
.fish-r20-photo-placeholder{display:grid;place-items:center;min-height:230px;border:1px solid var(--border,#d7e1eb);border-radius:16px;background:#f6f8fb;color:var(--muted,#68758a);font-weight:700;text-align:center}
.fish-r20-fishbook-copy h1{margin:.15rem 0 .4rem;font-size:clamp(2rem,5vw,3.4rem)}
.fish-r20-aliases,.fish-r20-muted,.fish-r20-source{color:var(--muted,#68758a)}
.fish-r20-trivia{font-size:1.18rem;line-height:1.8;margin:.65rem 0 1rem}
.fish-r20-source{display:block;margin-top:.4rem;font-size:.85rem}

.fish-r20-edit-current{display:grid;grid-template-columns:minmax(180px,28%) minmax(0,1fr);gap:1rem;align-items:center;padding:1rem;border:1px solid var(--border,#d7e1eb);border-radius:18px;background:#fff}
.fish-r20-edit-photo .fish-r20-photo-placeholder{min-height:160px}
.fish-r20-workflow{padding:1rem;border:1px solid #b8d8eb;border-radius:18px;background:#f8fcff}
.fish-r20-workflow-title h2{margin:.15rem 0 .75rem}
.fish-r20-steps{display:grid;gap:.65rem}
.fish-r20-steps>article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.8rem;border:1px solid var(--border,#d7e1eb);border-radius:14px;background:#fff}
.fish-r20-step-no{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:#0b75ae;color:#fff;font-weight:800}
.fish-r20-steps p{margin:.2rem 0;color:var(--muted,#68758a)}
.fish-r20-upload-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.fish-r20-profile-details-body,.fish-r20-advanced-body,.fish-r20-connection-body,.fish-r20-admin-connection-body{padding:1rem 0 0}
.fish-r20-profile-details-body{display:grid;gap:.8rem}
.fish-r20-profile-details-body>section{padding:.75rem;border-top:1px solid var(--border,#d7e1eb)}
.fish-r20-tech-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;margin:.5rem 0}
.fish-r20-tech-list>div{display:grid;gap:.12rem;padding:.55rem .65rem;border:1px solid var(--border,#d7e1eb);border-radius:10px}
.fish-r20-tech-list dt{color:var(--muted,#68758a);font-size:.82rem}.fish-r20-tech-list dd{margin:0;font-weight:700}

.fish-r20-admin-actions{padding:.25rem 0 .5rem}
.fish-r20-connection-notice{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;padding:.65rem .8rem;border:1px solid #f2c36b;border-radius:12px;background:#fff9ec}
.fish-r20-connection-notice span{color:var(--muted,#68758a)}
.fish-r20-row-tech{margin:.25rem 0}.fish-r20-row-tech summary{font-size:.8rem;color:var(--muted,#68758a);cursor:pointer}
.fish-r20-row-tech .fish-admin-identity{margin-top:.35rem}

@media (max-width:760px){
 .fish-r20-list-head,.fish-r20-admin-head,.fish-r20-edit-head{align-items:stretch;flex-direction:column}
 .fish-r20-search-row{grid-template-columns:1fr auto}.fish-r20-search-row .button-link{grid-column:1/-1}
 .fish-r20-row{grid-template-columns:minmax(0,1fr) auto;gap:.25rem .6rem;padding:.7rem .25rem}
 .fish-r20-next,.fish-r20-stats{grid-column:1/2}.fish-r20-arrow{grid-column:2;grid-row:1/4;align-self:center}
 .fish-r20-fishbook-hero,.fish-r20-edit-current{grid-template-columns:1fr}
 .fish-r20-photo img,.fish-r20-edit-photo img{max-height:330px}
 .fish-r20-steps>article{grid-template-columns:auto minmax(0,1fr)}
 .fish-r20-steps>article>.button-link,.fish-r20-steps>article>form{grid-column:1/-1}
 .fish-r20-upload-form{display:grid;grid-template-columns:1fr}.fish-r20-upload-form button{width:100%}
}


/* 1.70r22 Fish Detail Layout + Large Image Preference */
.fish-r20-photo { position: relative; }
.fish-r22-image-tier {
  position: absolute;
  right: .65rem;
  bottom: .65rem;
  padding: .22rem .55rem;
  border-radius: 999px;
  background: rgba(15, 23, 42, .78);
  color: #fff;
  font-size: .74rem;
  font-weight: 800;
}

/* Do not reuse the general form-card width on Fish Detail. */
.fish-r20-detail-page > .fish-r22-section {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 1rem 1.15rem;
  justify-self: stretch;
  border: 1px solid var(--line, #d7e1e8);
  border-radius: 18px;
  background: #fff;
}
.fish-r20-detail-page > .fish-r22-section .fish-detail-section-head { margin-bottom: .65rem; }
.fish-r20-detail-page > .fish-r22-section .fish-detail-section-head h2 {
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
}

/* KMA records: compact two-column ledger, not two tall cards. */
.fish-r22-record-strip,
.fish-r22-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line, #d7e1e8);
  border-radius: 12px;
  background: var(--surface-soft, #f8fafc);
}
.fish-r22-record-strip > article,
.fish-r22-split > article {
  min-width: 0;
  padding: .72rem .9rem;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.fish-r22-record-strip > article + article,
.fish-r22-split > article + article {
  border-left: 1px solid var(--line, #d7e1e8);
}
.fish-r22-record-strip > article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .2rem .8rem;
  align-items: baseline;
}
.fish-r22-record-strip h3,
.fish-r22-record-strip p,
.fish-r22-split h3 { margin: 0; }
.fish-r22-record-strip > article > p:not(.backup-note) { text-align: right; white-space: nowrap; }
.fish-r22-record-strip .backup-note {
  grid-column: 1 / -1;
  margin-top: .15rem;
  font-size: .8rem;
  line-height: 1.45;
}
.fish-r22-split ul { margin: .35rem 0 0; padding-left: 1.2rem; }
.fish-r22-split p { margin: .35rem 0 0; }

/* Keep lower-detail components visually dense. */
.fish-r20-detail-page .fish-detail-collapsible { margin-top: .7rem; padding-top: .7rem; }
.fish-r20-detail-page .fish-detail-gear-grid article { padding: .72rem .9rem; }
.fish-r20-detail-page .fish-detail-chip-grid { gap: .4rem; }
.fish-r20-detail-page .fish-detail-record-row { padding: .55rem .7rem; }

@media (max-width: 760px) {
  .fish-r20-detail-page > .fish-r22-section { padding: .85rem; }
  .fish-r22-record-strip,
  .fish-r22-split { grid-template-columns: 1fr; }
  .fish-r22-record-strip > article + article,
  .fish-r22-split > article + article {
    border-left: 0;
    border-top: 1px solid var(--line, #d7e1e8);
  }
  .fish-r22-record-strip > article { grid-template-columns: minmax(0, 1fr) auto; }
}


/* KMA FISHING CLUB 1.70r23 - Database UX Consolidation */
.database-page-head {
  display:flex; align-items:flex-end; justify-content:space-between; gap:1rem;
  padding:.25rem .1rem .7rem; border-bottom:1px solid var(--border,#d7e1eb); background:transparent;
}
.database-page-head h1 { margin:.12rem 0 .25rem; }
.database-page-head p { margin:.15rem 0; color:var(--muted,#68758a); }
.database-filter-strip {
  padding:.55rem 0 .7rem; border-bottom:1px solid var(--border,#d7e1eb); background:transparent;
}
.database-filter-strip input,.database-filter-strip select { min-height:40px; }
.database-admin-tools {
  margin-top:.7rem; border:1px solid var(--border,#d7e1eb); border-radius:14px; background:#fff;
}
.database-admin-tools>summary {
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:.6rem; padding:.72rem .9rem;
}
.database-admin-tools>summary::-webkit-details-marker { display:none; }
.database-admin-tools>summary:after { content:'›'; margin-left:auto; font-size:1.45rem; color:#0b6ea8; transition:transform .15s ease; }
.database-admin-tools[open]>summary:after { transform:rotate(90deg); }
.database-admin-tools>summary span { font-size:.72rem; font-weight:800; letter-spacing:.08em; color:#64748b; }
.database-admin-tools>summary strong { font-size:.98rem; }
.database-admin-tools-body { display:grid; gap:.8rem; padding:.2rem .9rem .9rem; border-top:1px solid var(--border,#d7e1eb); }
.database-admin-section { padding:.8rem 0 0; background:transparent; border:0; box-shadow:none; }
.database-admin-section+.database-admin-section { border-top:1px solid var(--border,#d7e1eb); margin-top:.2rem; }
.database-detail-hero {
  padding:.85rem 0 1rem; border-bottom:1px solid var(--border,#d7e1eb); background:transparent;
}
.database-detail-hero h1 { margin:.12rem 0 .35rem; }
.database-detail-section {
  padding:.9rem 0; border-bottom:1px solid var(--border,#d7e1eb); background:transparent; box-shadow:none; border-radius:0;
}
.database-detail-section>h2,.database-detail-section .location-section-heading h2 { margin:.1rem 0 .55rem; }
.location-summary-grid { display:flex; flex-wrap:wrap; gap:.45rem; margin:.75rem 0; }
.location-summary-grid>div {
  display:flex; align-items:baseline; gap:.35rem; min-width:0; padding:.38rem .58rem;
  border:1px solid var(--border,#d7e1eb); border-radius:999px; background:#fff;
}
.location-summary-grid strong { font-size:1rem; }
.location-summary-grid span { font-size:.78rem; }
.location-summary-grid.is-personal>div { background:#f7fbfe; }
.port-detail-split,.charter-detail-split,.facility-detail-split { display:grid; grid-template-columns:1fr; gap:0; }
.port-detail-split article,.charter-detail-split article,.facility-detail-split article {
  border:0; border-top:1px solid var(--border,#d7e1eb); border-radius:0; padding:.65rem 0;
}
.port-detail-split article:first-child,.charter-detail-split article:first-child,.facility-detail-split article:first-child { border-top:0; }
.port-detail-split ul,.charter-detail-split ul,.facility-detail-split ul { margin:.35rem 0 0; padding-left:1.25rem; }
.port-fish-grid,.charter-fish-grid,.facility-fish-grid,.location-gear-grid { display:block; }
.port-fish-grid a,.charter-fish-grid a,.facility-fish-grid a,.location-gear-grid article {
  display:flex; align-items:center; justify-content:space-between; gap:.8rem;
  padding:.58rem .1rem; border:0; border-top:1px solid var(--border,#d7e1eb); border-radius:0; background:transparent;
}
.port-fish-grid a:first-child,.charter-fish-grid a:first-child,.facility-fish-grid a:first-child,.location-gear-grid article:first-child { border-top:0; }
.location-gear-grid article { align-items:flex-start; flex-wrap:wrap; }
.location-gear-grid article>* { margin-right:.35rem; }
.database-action-list { display:block!important; border-top:1px solid var(--border,#d7e1eb); }
.database-action-row {
  display:grid!important; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:'num title action' 'badge summary action';
  gap:.15rem .75rem; align-items:center; padding:.72rem .1rem!important; border:0!important; border-bottom:1px solid var(--border,#d7e1eb)!important;
  border-radius:0!important; background:transparent!important; box-shadow:none!important;
}
.database-action-row .gear-path-number { grid-area:num; }
.database-action-row h2 { grid-area:title; margin:.05rem 0!important; font-size:1.05rem; }
.database-action-row .gear-path-badge { grid-area:badge; }
.database-action-row .gear-path-summary { grid-area:summary; }
.database-action-row>p { display:none; }
.database-action-row .gear-path-action { grid-area:action; width:auto; min-width:12rem; text-align:center; }
.gear-database-start-note { margin:.6rem 0 .25rem; }
.compact-footer-action { justify-content:flex-start; padding-top:.65rem; border-top:1px solid var(--border,#d7e1eb); }
.database-search-page>.empty-state,.database-list-ux .empty-state { padding:.75rem 0; border:0; background:transparent; text-align:left; color:var(--muted,#68758a); }
.database-detail-section .charter-info-grid,.database-detail-section .location-facts-grid { gap:.45rem; }
.database-detail-section .charter-info-grid>div,.database-detail-section .location-facts-grid>div { padding:.55rem .65rem; border-radius:9px; }
@media (max-width:720px) {
  .database-page-head { align-items:stretch; flex-direction:column; gap:.4rem; }
  .database-admin-tools>summary { align-items:flex-start; }
  .location-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-summary-grid>div { border-radius:10px; justify-content:space-between; }
  .database-action-row { grid-template-columns:auto minmax(0,1fr); grid-template-areas:'num title' 'badge summary' 'action action'; }
  .database-action-row .gear-path-action { width:100%; min-width:0; margin-top:.35rem; }
}


/* KMA FISHING CLUB 1.70r24 - Shared Experience Note Flow Simplification */
.experience-flow-guide,.knowledge-flow-guide {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.45rem; margin:.65rem 0 .85rem;
}
.experience-flow-guide>span,.knowledge-flow-guide>span {
  display:flex; gap:.45rem; align-items:flex-start; padding:.6rem .7rem; border:1px solid var(--border,#d7e1eb);
  border-radius:10px; background:#f8fbfd; font-size:.83rem; line-height:1.45;
}
.experience-flow-guide strong,.knowledge-flow-guide strong { color:#0b6ea8; white-space:nowrap; }
.personal-trip-note-private-note { margin:.45rem 0 .7rem; color:#526174; font-size:.84rem; }
.club-experience-notes { margin-top:.85rem; padding:.85rem 0; border-top:1px solid var(--border,#d7e1eb); border-bottom:1px solid var(--border,#d7e1eb); }
.club-experience-notes-help { margin:.35rem 0 .65rem; color:#526174; line-height:1.55; }
.club-experience-note-list { display:grid; gap:.45rem; margin:.55rem 0; }
.club-experience-note-item { padding:.55rem .65rem; border:1px solid var(--border,#d7e1eb); border-radius:10px; background:#f9fbfd; }
.club-experience-note-item p,.trip-experience-current-raw p,.trip-experience-legacy-private p { white-space:pre-wrap; margin:.35rem 0 0; }
.club-experience-note-author { display:flex; justify-content:space-between; gap:.8rem; align-items:baseline; }
.club-experience-note-empty { margin:.4rem 0; color:#6b7280; }
.trip-experience-quick-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.6rem; align-items:end; margin-top:.65rem; padding-top:.65rem; border-top:1px dashed var(--border,#d7e1eb); }
.trip-experience-quick-form label { display:grid; gap:.25rem; margin:0; }
.trip-experience-quick-form textarea { min-height:64px; resize:vertical; }
.trip-experience-quick-form button { min-height:42px; white-space:nowrap; }
.trip-experience-current-raw,.trip-experience-legacy-private,.trip-experience-cleaned-note { padding:.65rem .75rem; margin:.65rem 0; border:1px solid var(--border,#d7e1eb); border-radius:10px; background:#f8fbfd; }
.trip-experience-primary-actions { margin:.6rem 0; }
.trip-experience-edit-details { margin-top:.55rem; border-top:1px dashed var(--border,#d7e1eb); padding-top:.55rem; }
.trip-experience-edit-details>summary { cursor:pointer; font-weight:700; color:#526174; }
.trip-experience-edit-details .trip-experience-form { margin-top:.65rem; }
.knowledge-cleanup-card>summary { cursor:pointer; display:flex; justify-content:space-between; gap:.8rem; align-items:center; padding:.75rem 0; }
.knowledge-cleanup-legacy-body { padding:.2rem 0 .8rem; border-top:1px solid var(--border,#d7e1eb); }
@media (max-width:720px) {
  .experience-flow-guide,.knowledge-flow-guide { grid-template-columns:1fr; }
  .trip-experience-quick-form { grid-template-columns:1fr; }
  .trip-experience-quick-form button { width:100%; }
}

/* 1.70r36a Member participation / stopped-account transfer discoverability / password-mode control balance. */
.account-card-actions > .account-transfer-primary-action {
  flex: 1 1 180px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 44px;
  padding: 9px 10px;
  box-sizing: border-box;
  line-height: 1.25;
  white-space: normal;
  text-align: center;
}

.account-card-password-reset .check-label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 8px 0;
}
.account-card-password-reset .check-label input[type="radio"] {
  display: block !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  flex: none !important;
}
.account-card-password-reset .check-label > span {
  min-width: 0;
}
.account-card-password-reset .check-label > span > strong,
.account-card-password-reset .check-label > span > small {
  display: block;
}
.account-card-password-reset .check-label > span > small {
  margin-top: 3px;
  color: var(--muted);
  font-weight: 600;
  line-height: 1.45;
}

.member-profile-participation {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
.member-profile-participation-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.member-profile-participation-heading h2 {
  margin: 2px 0 0;
  color: var(--navy);
  font-size: 1.25rem;
}
.member-profile-participation-heading > span {
  flex: none;
  padding: 4px 10px;
  border-radius: 999px;
  background: #f1f5f9;
  color: var(--muted);
  font-size: .78rem;
  font-weight: 800;
}
.member-profile-participation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.member-profile-participation-grid > div {
  min-width: 0;
}
.member-profile-participation-grid h3 {
  margin: 0 0 8px;
  color: var(--navy);
  font-size: 1rem;
}
.member-profile-rsvp-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.member-profile-rsvp-list a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  padding: 10px 11px;
  border: 1px solid #dbe6ed;
  border-radius: 10px;
  background: #fff;
  color: inherit;
  text-decoration: none;
}
.member-profile-rsvp-list a:hover,
.member-profile-rsvp-list a:focus-visible {
  border-color: #7dd3fc;
  background: #f0f9ff;
}
.member-profile-rsvp-main {
  display: grid;
  gap: 2px;
  min-width: 0;
}
.member-profile-rsvp-main strong,
.member-profile-rsvp-main small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.member-profile-rsvp-main small {
  color: var(--muted);
  font-weight: 600;
}
.member-rsvp-status {
  flex: none;
  min-width: 48px;
  padding: 4px 8px;
  border-radius: 999px;
  text-align: center;
  font-size: .75rem;
  font-weight: 900;
}
.member-rsvp-status.is-join {
  color: #166534;
  background: #dcfce7;
}
.member-rsvp-status.is-no {
  color: #991b1b;
  background: #fee2e2;
}
.member-rsvp-status.is-maybe {
  color: #92400e;
  background: #fef3c7;
}

@media (max-width: 760px) {
  .account-card-actions > .account-transfer-primary-action {
    width: 100%;
  }
  .member-profile-participation-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}


/* 1.70r37 Facility Permission & Memo UX */
.shared-common-note {
  margin-top: 18px;
  border: 1px solid var(--line, #d8e3eb);
  border-radius: 16px;
  padding: 0;
  overflow: hidden;
}
.shared-common-note > summary {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  list-style: none;
}
.shared-common-note > summary::-webkit-details-marker { display: none; }
.shared-common-note > summary span {
  font-size: 0.82rem;
  font-weight: 600;
  opacity: 0.72;
}
.shared-common-note-body {
  padding: 0 16px 16px;
}
.shared-common-note-body .multiline {
  white-space: pre-wrap;
  margin-top: 0;
}
.shared-common-note-form {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--line, #d8e3eb);
}
.shared-common-note-form label {
  display: grid;
  gap: 6px;
}
.shared-common-note-form textarea {
  width: 100%;
  min-height: 92px;
  resize: vertical;
}
.shared-common-note-form button {
  justify-self: start;
}
@media (max-width: 680px) {
  .shared-common-note > summary {
    align-items: flex-start;
  }
  .shared-common-note-form button {
    width: 100%;
  }
}

/* ===== KMA 1.70r43 cross-cutting stabilization ===== */
.message-card-subject-row,
.message-card-subject-row h2,
.message-card-preview,
.message-card-recipients,
.notification-card-title-row,
.notification-card-title-stack,
.notification-card-title-stack h2,
.notification-card-body {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.message-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  margin: 1rem 0;
  color: #64748b;
  font-weight: 800;
}

.message-pagination .ui-button {
  min-width: 6.5rem;
  justify-content: center;
}

@media (max-width: 560px) {
  .message-pagination {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    width: 100%;
    gap: .45rem;
  }

  .message-pagination .ui-button {
    min-width: 0;
    width: 100%;
  }
}
/* ===== END KMA 1.70r43 cross-cutting stabilization ===== */

/* ===== KMA FISHING CLUB 1.70r43a registration/source UX ===== */
.official-import-container .official-import-page > .form-card {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  box-sizing: border-box;
}
.official-import-url-form {
  grid-template-columns: minmax(0,1fr) minmax(220px,max-content);
}
.official-import-url-fields {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
}
.official-import-field-wide { grid-column: 1 / -1; }
.official-import-url-fields label { min-width:0; margin:0; }
.official-import-url-fields textarea,
.official-import-url-fields select,
.official-import-url-fields input { width:100%; min-width:0; box-sizing:border-box; }
.official-import-url-fields small { display:block; margin-top:5px; color:var(--muted,#64748b); font-weight:400; }

.database-register-methods {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 12px;
  align-items: start;
  margin-top: 12px;
}
.database-register-method {
  min-width: 0;
  border: 1px solid var(--line,#d8e0e7);
  border-radius: 14px;
  background: var(--card-bg,#fff);
  color: inherit;
  box-sizing: border-box;
}
a.database-register-method {
  min-height: 92px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 14px 16px;
  text-decoration: none;
}
.database-register-method > strong,
.database-register-method > summary strong { font-size: 1rem; color: var(--navy,#12344d); }
.database-register-method > span,
.database-register-method > summary span { color: var(--muted,#64748b); font-size: .9rem; line-height: 1.45; }
.database-register-method:hover { border-color: var(--blue,#0b78c8); }
details.database-register-method > summary {
  min-height: 92px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 14px 16px;
  box-sizing: border-box;
  cursor: pointer;
  list-style: none;
}
details.database-register-method > summary::-webkit-details-marker { display:none; }
details.database-register-method[open] { grid-column: 1 / -1; }
.database-register-manual-body {
  border-top: 1px solid var(--line,#d8e0e7);
  padding: 16px;
}
.database-register-manual-body .facility-admin-form,
.database-register-manual-body .charter-admin-form { margin:0; }

.official-source-badge {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-right: 6px;
  padding: 2px 7px;
  border: 1px solid var(--line,#d8e0e7);
  border-radius: 999px;
  font-size: .76rem;
  font-weight: 900;
  line-height: 1.35;
}
.official-source-badge.is-official { background: #eef8f1; }
.official-source-badge.is-external { background: #fff8e7; }

@media (max-width: 720px) {
  .official-import-url-form { grid-template-columns: 1fr; }
  .official-import-url-fields { grid-template-columns: 1fr; }
  .official-import-field-wide { grid-column: auto; }
  .official-import-url-form > button { width:100%; }
  .database-register-methods { grid-template-columns: 1fr; }
  details.database-register-method[open] { grid-column: auto; }
}

/* KMA 1.70r43c - general facility guide presentation */
.facility-guide-page{gap:18px}
.facility-guide-hero{position:relative;overflow:hidden;padding:clamp(18px,2.4vw,30px);border:1px solid var(--border-color,#d9dee7);border-radius:20px;background:linear-gradient(135deg,rgba(14,116,144,.07),rgba(255,255,255,.98) 38%,rgba(15,118,110,.05));box-shadow:0 10px 28px rgba(15,23,42,.06)}
.facility-guide-hero.is-ramen{background:linear-gradient(135deg,rgba(180,83,9,.09),rgba(255,255,255,.98) 40%,rgba(220,38,38,.05))}
.facility-guide-hero.is-gourmet{background:linear-gradient(135deg,rgba(126,34,206,.07),rgba(255,255,255,.98) 40%,rgba(14,116,144,.05))}
.facility-guide-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.facility-guide-heading .eyebrow{margin:0 0 .35rem;letter-spacing:.12em}
.facility-guide-heading h1{font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.15;margin:.1rem 0 .35rem}
.facility-guide-collections{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:42%}
.facility-guide-intro{max-width:900px;margin:.45rem 0 1rem;color:var(--muted,#667085);font-size:1rem;line-height:1.7}
.facility-guide-tag-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;margin:.8rem 0 1rem}
.facility-guide-tag-group{display:grid;gap:5px;padding:9px 11px;border:1px solid rgba(148,163,184,.35);border-radius:12px;background:rgba(255,255,255,.72)}
.facility-guide-tag-group>span{font-size:.75rem;font-weight:800;color:var(--muted,#667085);letter-spacing:.04em}
.facility-guide-tag-group>div{display:flex;gap:5px;flex-wrap:wrap}
.facility-guide-tag-group strong{font-size:.88rem;padding:3px 8px;border-radius:999px;background:rgba(15,118,110,.1);font-weight:700}
.facility-guide-hero.is-ramen .facility-guide-tag-group strong{background:rgba(180,83,9,.1)}
.facility-guide-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:1rem 0}
.facility-guide-fact{display:grid;gap:4px;padding:12px 13px;border:1px solid rgba(148,163,184,.35);border-radius:13px;background:rgba(255,255,255,.82)}
.facility-guide-fact span{font-size:.78rem;font-weight:800;color:var(--muted,#667085)}
.facility-guide-fact strong{font-size:.95rem;line-height:1.55;overflow-wrap:anywhere}
.facility-guide-location{display:grid;gap:6px;margin-top:.9rem;padding-top:.9rem;border-top:1px solid rgba(148,163,184,.28)}
.facility-guide-location p{display:grid;grid-template-columns:130px minmax(0,1fr);gap:10px;margin:0;align-items:start}
.facility-guide-location p>strong{font-size:.82rem;color:var(--muted,#667085)}
.facility-guide-location p>span{overflow-wrap:anywhere}
.facility-guide-actions{margin-top:1rem}
.facility-guide-actions .button-link{min-height:42px;display:inline-flex;align-items:center;justify-content:center}
.facility-guide-trip-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem}
.facility-guide-trip-summary span{display:inline-flex;align-items:baseline;gap:5px;padding:6px 10px;border-radius:999px;background:rgba(15,23,42,.055);font-size:.82rem;color:var(--muted,#667085)}
.facility-guide-trip-summary strong{font-size:1rem;color:var(--text-color,#111827)}
.facility-guide-note-section{border-left:4px solid rgba(14,116,144,.35)}
.facility-guide-note{font-size:1rem;line-height:1.8;margin:.25rem 0 0}
.facility-guide-detail-facts>div{min-height:78px}
.facility-guide-sources{margin-top:12px}
.facility-related-trips .facility-detail-split article{background:rgba(255,255,255,.62)}
@media(max-width:720px){
  .facility-guide-hero{padding:16px;border-radius:15px}
  .facility-guide-heading{display:grid;gap:10px}
  .facility-guide-collections{max-width:none;justify-content:flex-start}
  .facility-guide-facts,.facility-guide-tag-groups{grid-template-columns:1fr}
  .facility-guide-location p{grid-template-columns:1fr;gap:2px}
  .facility-guide-actions{display:grid;grid-template-columns:1fr}
  .facility-guide-actions .button-link{width:100%;box-sizing:border-box}
}

/* 1.70r43d facility photo guide */
.facility-photo-section{display:grid;gap:14px;overflow:hidden}
.facility-photo-cover-wrap{position:relative;display:grid;gap:8px}
.facility-photo-cover{display:block;overflow:hidden;border-radius:18px;background:#eef2f7;aspect-ratio:16/9;max-height:640px}
.facility-photo-cover img{width:100%;height:100%;object-fit:cover;display:block}
.facility-photo-cover-badge{position:absolute;top:12px;left:12px;padding:5px 9px;border-radius:999px;background:rgba(15,23,42,.82);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.08em}
.facility-photo-cover-caption{margin:0;color:var(--muted,#667085);font-size:.92rem}
.facility-photo-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px}
.facility-photo-thumb{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:10px;border:2px solid transparent;background:#eef2f7}
.facility-photo-thumb.is-cover{border-color:rgba(14,116,144,.75)}
.facility-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.facility-photo-tools{margin-top:4px}
.facility-photo-quick-upload{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(280px,1.25fr) auto;gap:12px;align-items:center;padding:14px;border:1px solid rgba(14,116,144,.24);border-radius:16px;background:linear-gradient(135deg,rgba(236,254,255,.82),rgba(248,250,252,.92))}
.facility-photo-quick-upload.is-full{grid-template-columns:1fr;background:rgba(248,250,252,.86)}
.facility-photo-quick-copy{display:grid;gap:3px}.facility-photo-quick-copy strong{font-size:1.02rem}.facility-photo-quick-copy span{font-size:.86rem;color:var(--muted,#667085)}
.facility-photo-picker{display:grid;gap:6px;margin:0}.facility-photo-picker>span{font-size:.78rem;font-weight:800;color:var(--muted,#667085)}
.facility-photo-picker input[type=file]{width:100%;min-width:0;box-sizing:border-box;padding:8px;border:1px dashed rgba(14,116,144,.42);border-radius:12px;background:#fff}
.facility-photo-picker input[type=file]::file-selector-button{margin-right:10px;padding:9px 12px;border:0;border-radius:9px;background:rgba(14,116,144,.1);font:inherit;font-weight:800;color:#0e7490;cursor:pointer}
.facility-photo-quick-submit{white-space:nowrap;margin:0}
.facility-photo-quick-note{grid-column:1/-1;margin:0;font-size:.78rem;color:var(--muted,#667085)}
.facility-photo-manage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:14px}
.facility-photo-manage-card{display:grid;gap:9px;padding:10px;border:1px solid rgba(148,163,184,.35);border-radius:14px;background:rgba(255,255,255,.72)}
.facility-photo-manage-card>img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;background:#eef2f7}
.facility-photo-card-meta{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:.78rem;color:var(--muted,#667085)}
.facility-photo-card-meta strong{color:var(--text-color,#111827)}
.facility-photo-caption-form{display:grid;gap:7px}.facility-photo-caption-form label{display:grid;gap:5px;margin:0}
.facility-photo-card-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.facility-photo-card-actions form{margin:0}
@media(max-width:720px){.facility-photo-cover{aspect-ratio:4/3;border-radius:14px}.facility-photo-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.facility-photo-quick-upload{grid-template-columns:1fr;padding:12px}.facility-photo-quick-submit{width:100%}.facility-photo-manage-grid{grid-template-columns:1fr}.facility-photo-card-actions{display:grid;grid-template-columns:1fr 1fr}.facility-photo-card-actions form,.facility-photo-card-actions button{width:100%}}

/* 1.70r43g: separate read-only facility profile from the unified editor. */
.facility-edit-entry{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:1.1rem;padding-top:1rem;border-top:1px solid rgba(148,163,184,.28)}
.facility-edit-entry>span{font-size:.84rem;color:var(--muted,#667085)}
.facility-edit-main-button{font-weight:800;box-shadow:0 6px 18px rgba(7,89,133,.15)}
.facility-photo-add-toggle{margin-top:14px;border:1px solid rgba(14,116,144,.28);border-radius:14px;background:rgba(236,254,255,.55);overflow:hidden}
.facility-photo-add-toggle>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;cursor:pointer;padding:12px 14px;color:#075985;list-style:none}
.facility-photo-add-toggle>summary::-webkit-details-marker{display:none}
.facility-photo-add-toggle>summary strong{font-size:1rem}
.facility-photo-add-toggle>summary span{font-size:.82rem;color:var(--muted,#667085)}
.facility-photo-add-toggle[open]>summary{border-bottom:1px solid rgba(14,116,144,.2);background:rgba(255,255,255,.7)}
.facility-photo-quick-upload.is-collapsed-upload{margin:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.facility-photo-add-full{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:12px;padding:10px 12px;border-radius:12px;background:rgba(248,250,252,.9);font-size:.86rem}
.facility-photo-add-full span{color:var(--muted,#667085)}
.facility-editor-page{display:grid;gap:18px}
.facility-editor-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:clamp(18px,2.4vw,28px);border:1px solid var(--border-color,#d9dee7);border-radius:18px;background:linear-gradient(135deg,rgba(14,116,144,.07),rgba(255,255,255,.98));box-shadow:0 10px 28px rgba(15,23,42,.05)}
.facility-editor-hero h1{margin:.15rem 0 .5rem;font-size:clamp(1.65rem,2.7vw,2.35rem)}
.facility-editor-hero p:last-child{margin:.2rem 0 0;color:var(--muted,#667085);line-height:1.7}
.facility-editor-index{display:flex;flex-wrap:wrap;gap:8px;padding:10px;border:1px solid rgba(148,163,184,.3);border-radius:14px;background:rgba(248,250,252,.92);position:sticky;top:8px;z-index:4;box-shadow:0 5px 18px rgba(15,23,42,.05)}
.facility-editor-index a{display:inline-flex;align-items:center;min-height:36px;padding:5px 10px;border-radius:10px;text-decoration:none;font-weight:700;background:#fff;border:1px solid rgba(148,163,184,.34)}
.facility-editor-section{scroll-margin-top:78px}
.facility-editor-section .facility-admin-form{max-width:none}
.facility-editor-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.facility-editor-priority-fields{margin-bottom:12px}
.facility-editor-more{margin:12px 0;border:1px solid rgba(148,163,184,.3);border-radius:12px;background:rgba(248,250,252,.65)}
.facility-editor-more>summary{padding:10px 12px;cursor:pointer;font-weight:800}
.facility-editor-more>.facility-form-grid{padding:0 12px 12px}
.facility-editor-footer{display:flex;justify-content:flex-end;padding:4px 0 22px}
@media(max-width:720px){.facility-edit-entry{display:grid;grid-template-columns:1fr}.facility-edit-entry .button-link{width:100%;box-sizing:border-box}.facility-photo-add-toggle>summary{align-items:flex-start}.facility-photo-quick-upload.is-collapsed-upload{grid-template-columns:1fr}.facility-editor-hero{display:grid}.facility-editor-hero .button-link{width:100%;box-sizing:border-box}.facility-editor-index{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.facility-editor-index a{justify-content:center;text-align:center}.facility-editor-footer .button-link{width:100%;box-sizing:border-box}}


/* 1.70r43h: facility editor readability and focus expansion. */
.facility-editor-page .facility-admin-form label{
  display:grid;
  gap:7px;
  min-width:0;
  font-weight:800;
}
.facility-editor-page .facility-admin-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.facility-editor-page .facility-admin-form select,
.facility-editor-page .facility-admin-form textarea{
  width:100%;
  min-width:0;
  box-sizing:border-box;
  padding:11px 12px;
  border:1px solid rgba(148,163,184,.52);
  border-radius:10px;
  background:#fff;
  color:var(--text-color,#111827);
  font:inherit;
  font-weight:500;
  line-height:1.55;
}
.facility-editor-page .facility-admin-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.facility-editor-page .facility-admin-form select{
  min-height:44px;
}
.facility-editor-page .facility-admin-form textarea{
  min-height:92px;
  resize:vertical;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.facility-editor-page .facility-admin-form input:focus,
.facility-editor-page .facility-admin-form select:focus,
.facility-editor-page .facility-admin-form textarea:focus{
  outline:3px solid rgba(14,116,144,.13);
  border-color:rgba(14,116,144,.72);
  box-shadow:0 0 0 1px rgba(14,116,144,.14);
}
.facility-editor-priority-fields{
  grid-template-columns:repeat(2,minmax(340px,1fr));
  gap:16px;
  align-items:start;
}
.facility-editor-priority-fields .facility-editor-expandable-field,
.facility-editor-more .facility-editor-expandable-field{
  min-width:0;
  padding:12px;
  border:1px solid rgba(148,163,184,.28);
  border-radius:12px;
  background:rgba(248,250,252,.72);
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.facility-editor-priority-fields .facility-editor-expandable-field:focus-within,
.facility-editor-priority-fields .facility-editor-expandable-field.is-editing,
.facility-editor-more .facility-editor-expandable-field:focus-within,
.facility-editor-more .facility-editor-expandable-field.is-editing{
  grid-column:1 / -1;
  background:#fff;
  border-color:rgba(14,116,144,.55);
  box-shadow:0 8px 24px rgba(15,23,42,.07);
}
.facility-editor-autogrow{
  transition:min-height .12s ease;
}
.facility-editor-autogrow:focus{
  min-height:132px;
}
.facility-editor-field-hint{
  margin-top:-2px;
  font-size:.74rem;
  font-weight:600;
  color:var(--muted,#667085);
}
.facility-editor-section .facility-admin-form > button[type="submit"]{
  justify-self:start;
  min-width:220px;
  min-height:44px;
  margin-top:2px;
}
@media(max-width:980px){
  .facility-editor-priority-fields{grid-template-columns:1fr}
  .facility-editor-priority-fields .facility-editor-expandable-field:focus-within,
  .facility-editor-priority-fields .facility-editor-expandable-field.is-editing,
  .facility-editor-more .facility-editor-expandable-field:focus-within,
  .facility-editor-more .facility-editor-expandable-field.is-editing{grid-column:auto}
}
@media(max-width:720px){
  .facility-editor-page .facility-admin-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  .facility-editor-page .facility-admin-form select,
  .facility-editor-page .facility-admin-form textarea{font-size:16px}
  .facility-editor-section .facility-admin-form > button[type="submit"]{width:100%;min-width:0}
  .facility-editor-field-hint{font-size:.72rem}
}
/* ===== END 1.70r43h facility editor readability ===== */


/* 1.70r43i - unified facility editor save flow */
.facility-unified-edit-form{display:grid;gap:18px}
.facility-unified-edit-form .facility-admin-form{max-width:none}
.facility-editor-photo-details{padding:0;overflow:hidden}
.facility-editor-photo-details>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;font-weight:800;list-style:none}
.facility-editor-photo-details>summary::-webkit-details-marker{display:none}
.facility-editor-photo-details>summary:after{content:"＋";font-size:1.25rem;font-weight:900;margin-left:auto}
.facility-editor-photo-details[open]>summary:after{content:"−"}
.facility-editor-photo-body{padding:0 18px 18px}
.facility-editor-unified-savebar{position:sticky;bottom:12px;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;border:2px solid rgba(2,132,199,.45);border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 14px 34px rgba(15,23,42,.16);backdrop-filter:blur(10px)}
.facility-editor-unified-savebar>div{display:grid;gap:3px;min-width:0}
.facility-editor-unified-savebar strong{font-size:1rem}
.facility-editor-unified-savebar span{color:var(--muted,#667085);font-size:.86rem;line-height:1.45}
.facility-editor-unified-savebar button{min-width:260px;min-height:50px;font-size:1rem;font-weight:900}
@media(max-width:720px){.facility-editor-unified-savebar{position:static;display:grid;grid-template-columns:1fr;padding:14px}.facility-editor-unified-savebar button{width:100%;min-width:0}.facility-editor-photo-details>summary{align-items:flex-start;flex-wrap:wrap}}

/* 1.70r43j: facility top thumbnails + ramen representative values */
.facility-photo-top{display:grid;gap:8px;margin:14px 0 8px;padding:10px 12px;border:1px solid rgba(148,163,184,.3);border-radius:14px;background:rgba(255,255,255,.78)}
.facility-photo-top-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.84rem;color:var(--muted,#667085)}
.facility-photo-top-head strong{color:var(--text-color,#111827);font-size:.95rem}
.facility-photo-top-strip{display:flex;gap:8px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:thin;overscroll-behavior-inline:contain}
.facility-photo-top-thumb{position:relative;flex:0 0 96px;width:96px;height:72px;padding:0;border:1px solid rgba(148,163,184,.38);border-radius:10px;overflow:hidden;background:#eef2f7;cursor:zoom-in;box-shadow:none}
.facility-photo-top-thumb.is-cover{border:2px solid rgba(14,116,144,.75)}
.facility-photo-top-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.facility-photo-top-badge{position:absolute;left:4px;bottom:4px;padding:2px 5px;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:.58rem;font-weight:900;letter-spacing:.06em}
.facility-photo-top-empty{margin:0}
.facility-photo-add-top{margin-top:0;max-width:520px}
.facility-photo-add-full.compact{margin-top:0;padding:7px 9px;font-size:.78rem}
.facility-photo-dialog{width:min(94vw,1100px);max-height:92vh;padding:42px 16px 16px;border:0;border-radius:16px;background:#0f172a;box-shadow:0 24px 80px rgba(0,0,0,.42);overflow:auto}
.facility-photo-dialog::backdrop{background:rgba(2,6,23,.82);backdrop-filter:blur(4px)}
.facility-photo-dialog img{display:block;max-width:100%;max-height:76vh;margin:auto;border-radius:10px;object-fit:contain;background:#020617}
.facility-photo-dialog p{margin:12px auto 0;max-width:900px;color:#fff;text-align:center;line-height:1.6;white-space:pre-wrap}
.facility-photo-dialog-close{position:absolute;top:8px;right:10px;width:34px;height:34px;border:0;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-size:1.45rem;line-height:1;cursor:pointer}
.ramen-representative-summary{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px}
.ramen-representative-summary>span{display:grid;gap:1px;min-width:135px;padding:8px 11px;border:1px solid rgba(217,119,6,.28);border-radius:12px;background:rgba(255,247,237,.9)}
.ramen-representative-summary small{font-size:.68rem;color:#92400e;font-weight:800}
.ramen-representative-summary strong{font-size:.96rem;color:#7c2d12}
.compact-category-badge.is-representative{border-color:rgba(217,119,6,.55);background:#fff7ed;color:#9a3412;font-weight:900}
.ramen-representative-editor{margin-top:14px;padding:14px;border:1px solid rgba(217,119,6,.28);border-radius:14px;background:rgba(255,247,237,.55)}
.ramen-representative-editor h3{margin:0 0 6px;font-size:1rem}
.facility-photo-caption-form textarea{width:100%;min-height:70px;box-sizing:border-box;resize:vertical}
@media(max-width:720px){.facility-photo-top-thumb{flex-basis:78px;width:78px;height:78px}.facility-photo-dialog{width:96vw;padding:40px 10px 12px}.facility-photo-dialog img{max-height:72vh}.ramen-representative-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ramen-representative-summary>span{min-width:0}}


/* 1.71r7 Ramen Club latest bowl portal card */
.ramen-today-card {
  display: grid;
  gap: 16px;
}
.ramen-today-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.ramen-today-heading h2,
.ramen-today-heading p {
  margin: 0;
}
.ramen-today-layout {
  display: grid;
  grid-template-columns: minmax(180px, 280px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
}
.ramen-today-media {
  min-width: 0;
}
.ramen-today-media a {
  display: block;
}
.ramen-today-media img,
.ramen-today-photo-placeholder {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 14px;
  object-fit: cover;
  background: rgba(127, 127, 127, 0.10);
}
.ramen-today-photo-placeholder {
  display: grid;
  place-items: center;
  font-size: clamp(48px, 8vw, 84px);
}
.ramen-today-main {
  min-width: 0;
}
.ramen-today-main h3 {
  margin: 2px 0 8px;
  font-size: clamp(1.35rem, 2vw, 1.85rem);
}
.ramen-today-date,
.ramen-today-shop,
.ramen-today-price,
.ramen-today-comment {
  margin: 0 0 9px;
}
.ramen-today-date {
  opacity: 0.72;
  font-size: 0.9rem;
}
.ramen-today-price {
  font-weight: 700;
  font-size: 1.1rem;
}
.ramen-today-comment,
.ramen-today-comment-more p {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.ramen-today-comment-more {
  margin: 0 0 10px;
}
.ramen-today-comment-more summary {
  cursor: pointer;
  font-weight: 700;
}
.ramen-today-comment-more p {
  margin: 8px 0 0;
}
.ramen-today-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
@media (max-width: 720px) {
  .ramen-today-heading {
    display: grid;
  }
  .ramen-today-heading .button-link {
    width: 100%;
    text-align: center;
  }
  .ramen-today-layout {
    grid-template-columns: 1fr;
  }
  .ramen-today-media {
    max-width: 520px;
  }
}


/* 1.71r8 Ramen bowl paginated history */
.ramen-bowl-history-page{display:grid;gap:18px}.ramen-bowl-history-filter{display:grid;gap:10px}.ramen-bowl-history-filter h2,.ramen-bowl-history-filter p{margin-top:0}.ramen-bowl-history-filter-form{display:grid;grid-template-columns:minmax(180px,1fr) minmax(160px,220px) auto;gap:10px;align-items:end}.ramen-bowl-history-filter-form label{display:grid;gap:6px;font-weight:700}.ramen-bowl-history-filter-form input{width:100%;box-sizing:border-box}.ramen-bowl-history-filter-actions{display:flex;gap:8px;flex-wrap:wrap}.ramen-bowl-history-list{display:grid;gap:14px}.ramen-bowl-history-card{display:grid;grid-template-columns:160px minmax(0,1fr);gap:16px;align-items:start}.ramen-bowl-history-media a{display:block}.ramen-bowl-history-media img,.ramen-bowl-history-placeholder{display:block;width:100%;aspect-ratio:4/3;border-radius:13px;object-fit:cover;background:rgba(127,127,127,.10)}.ramen-bowl-history-placeholder{display:grid;place-items:center;font-size:48px}.ramen-bowl-history-main{min-width:0}.ramen-bowl-history-main h2{margin:2px 0 6px;font-size:1.18rem}.ramen-bowl-history-date,.ramen-bowl-history-shop,.ramen-bowl-history-price,.ramen-bowl-history-comment,.ramen-bowl-history-author{margin:0 0 7px}.ramen-bowl-history-date{font-size:.86rem;opacity:.72}.ramen-bowl-history-price{font-weight:800}.ramen-bowl-history-comment,.ramen-bowl-history-more p{white-space:pre-wrap;overflow-wrap:anywhere}.ramen-bowl-history-more{margin:0 0 8px}.ramen-bowl-history-more summary{cursor:pointer;font-weight:700}.ramen-bowl-history-more p{margin:7px 0 0}.ramen-bowl-history-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.ramen-bowl-history-pagination{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center}.ramen-bowl-history-pagination>a:last-child{justify-self:end}.ramen-bowl-history-pagination>span{justify-self:center;font-weight:700}@media(max-width:720px){.ramen-bowl-history-filter-form{grid-template-columns:1fr}.ramen-bowl-history-filter-actions>*{flex:1 1 auto}.ramen-bowl-history-card{grid-template-columns:112px minmax(0,1fr);gap:12px}.ramen-bowl-history-main h2{font-size:1.05rem}.ramen-bowl-history-pagination{grid-template-columns:1fr 1fr}.ramen-bowl-history-pagination>span{grid-column:1/-1;grid-row:1;justify-self:center}.ramen-bowl-history-pagination>a:first-of-type{grid-column:1;grid-row:2}.ramen-bowl-history-pagination>a:last-child{grid-column:2;grid-row:2}}@media(max-width:480px){.ramen-bowl-history-card{grid-template-columns:1fr}.ramen-bowl-history-media{max-width:420px}.ramen-bowl-history-media img,.ramen-bowl-history-placeholder{aspect-ratio:16/10}.ramen-bowl-history-actions>*{flex:1 1 auto;text-align:center}}

/* 1.71r9 Ramen shop <-> bowl bidirectional activity links */
.ramen-shop-bowls{display:grid;gap:14px}.ramen-shop-bowls-heading{margin-bottom:0}.ramen-shop-bowl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.ramen-shop-bowl-card{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:12px;border:1px solid rgba(127,127,127,.20);border-radius:14px;background:rgba(127,127,127,.035)}.ramen-shop-bowl-media a{display:block}.ramen-shop-bowl-media img,.ramen-shop-bowl-placeholder{display:block;width:100%;aspect-ratio:1/1;border-radius:12px;object-fit:cover;background:rgba(127,127,127,.10)}.ramen-shop-bowl-placeholder{display:grid;place-items:center;font-size:34px}.ramen-shop-bowl-main{min-width:0}.ramen-shop-bowl-main h3{margin:2px 0 5px;font-size:1rem}.ramen-shop-bowl-date,.ramen-shop-bowl-price,.ramen-shop-bowl-comment{margin:0 0 5px}.ramen-shop-bowl-date{font-size:.82rem;opacity:.72}.ramen-shop-bowl-price{font-weight:800}.ramen-shop-bowl-comment{font-size:.92rem;white-space:pre-wrap;overflow-wrap:anywhere}.ramen-shop-bowl-actions,.ramen-shop-bowls-footer,.ramen-bowl-history-head-actions{display:flex;gap:8px;flex-wrap:wrap}.ramen-shop-bowls-footer{margin-top:2px}.ramen-bowl-history-head-actions{align-items:center;justify-content:flex-end}.ramen-bowl-history-filter-form.is-facility-filtered{grid-template-columns:minmax(220px,1fr) minmax(160px,220px) auto}@media(max-width:720px){.ramen-shop-bowl-grid{grid-template-columns:1fr}.ramen-shop-bowl-card{grid-template-columns:92px minmax(0,1fr)}.ramen-shop-bowls-footer>*{flex:1 1 auto;text-align:center}.ramen-bowl-history-head-actions{width:100%;justify-content:stretch}.ramen-bowl-history-head-actions>*{flex:1 1 auto;text-align:center}.ramen-bowl-history-filter-form.is-facility-filtered{grid-template-columns:1fr}}@media(max-width:430px){.ramen-shop-bowl-card{grid-template-columns:80px minmax(0,1fr)}}

/* 1.71r10 Ramen UI/performance/security hardening */
.ramen-bowl-form-page,.ramen-bowl-edit-page{max-width:820px;margin:0 auto}.ramen-bowl-preview{display:grid;gap:12px}.ramen-bowl-preview img{display:block;max-width:100%;max-height:420px;border-radius:14px;object-fit:contain;background:#f3f4f6}.ramen-bowl-shop-list{display:grid;gap:8px}.ramen-bowl-shop-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ramen-bowl-shop-copy{min-width:0}.ramen-bowl-shop-copy span{display:block}.ramen-bowl-success{display:grid;grid-template-columns:minmax(100px,180px) 1fr;gap:16px;align-items:start}.ramen-bowl-success img{width:100%;border-radius:14px}.ramen-bowl-form-actions,.ramen-bowl-edit-actions{display:flex;gap:10px;flex-wrap:wrap}.ramen-bowl-current-photo{display:block;width:min(100%,420px);border-radius:14px;margin:10px 0}.ramen-database-pagination{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;margin-top:16px}.ramen-database-pagination>a:last-of-type{justify-self:end}.ramen-database-pagination>span{justify-self:center;font-weight:700}.ramen-database-pagination>span:first-child{justify-self:start}.ramen-database-pagination>span:last-child{justify-self:end}@media(max-width:640px){.ramen-bowl-success{grid-template-columns:1fr}.ramen-bowl-form-actions>*,.ramen-bowl-edit-actions>*{flex:1 1 auto;text-align:center}.ramen-bowl-shop-row{align-items:flex-start;flex-direction:column}.ramen-database-pagination{grid-template-columns:1fr 1fr}.ramen-database-pagination>span:nth-child(2){grid-column:1/-1;grid-row:1}.ramen-database-pagination>a:first-child{grid-column:1;grid-row:2}.ramen-database-pagination>a:last-child{grid-column:2;grid-row:2}}

/* ===== KMA CSS SOURCE 102/102: style-171r13.css ===== */
/* 1.71r13 Notification badge hidden-state fix + explicit Message read status */
.notification-nav-badge[hidden] {
  display: none !important;
}
.message-read-toolbar {
  margin: 0 0 .8rem;
  padding: .7rem .8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
}
.message-read-toolbar > div {
  display: flex;
  align-items: center;
  gap: .7rem;
  flex-wrap: wrap;
}
.message-read-toolbar b { color: #0b78ad; }
.message-all-read-state { color: #18734d; font-weight: 800; }
.message-read-badge {
  margin-left: auto;
  font-size: .78rem;
  font-weight: 800;
  color: #0b78ad;
  background: #eaf7ff;
  border-radius: 999px;
  padding: .18rem .5rem;
  white-space: nowrap;
}
.message-read-badge.is-read {
  color: #18734d;
  background: #edf8f2;
}
.message-read-action-form {
  display: flex;
  justify-content: flex-end;
  margin: .65rem 0 0;
}
@media (max-width: 640px) {
  .message-read-toolbar { align-items: stretch; }
  .message-read-toolbar form,
  .message-read-toolbar button,
  .message-read-action-form button { width: 100%; }
}
/* ===== END KMA CSS SOURCE: style-171r13.css ===== */

/* ===== KMA FISHING CLUB 1.71r16: native radio/checkbox size hotfix =====
   Legacy .admin-form input rules style normal text/password inputs at full width.
   Choice controls must stay native compact controls, especially in ramen member
   password-mode forms. Keep this late in the bundle so it wins over legacy rules. */
.admin-form .check-label > input[type="radio"],
.admin-form .check-label > input[type="checkbox"],
.form-card .check-label > input[type="radio"],
.form-card .check-label > input[type="checkbox"],
.kma-form .check-label > input[type="radio"],
.kma-form .check-label > input[type="checkbox"] {
  -webkit-appearance: auto !important;
  appearance: auto !important;
  display: inline-block !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  flex: 0 0 18px !important;
  box-sizing: border-box !important;
  vertical-align: top;
  accent-color: var(--blue);
}

.admin-form .check-label,
.form-card .check-label,
.kma-form .check-label {
  min-width: 0;
  align-items: flex-start;
}

.admin-form .check-label > span,
.form-card .check-label > span,
.kma-form .check-label > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* 1.71r27: photo comment editor and lightweight per-image actions. */
.facility-photo-top-item{flex:0 0 96px;width:96px;display:flex;flex-direction:column;gap:3px}
.facility-photo-top-item .facility-photo-top-thumb{flex:0 0 auto}
.facility-photo-edit-link{font-size:11px;font-weight:700;text-align:center;line-height:1.4;text-decoration:underline;padding:3px 0}
.trip-photo-card>a.trip-photo-comment-link{display:block;aspect-ratio:auto;overflow:visible;background:transparent;border-radius:0;font-size:12px;text-align:center;font-weight:700;padding:7px 0;text-decoration:underline}
.photo-short-caption{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem;margin:10px 0;padding:9px 12px;background:rgba(127,127,127,.09);border-radius:8px}
.photo-comment-editor textarea{width:100%;box-sizing:border-box;min-height:86px;font-size:16px}
@media(max-width:720px){.facility-photo-top-item{flex-basis:78px;width:78px}.photo-comment-editor .button-link,.photo-comment-editor button{flex:1 1 150px;text-align:center}}
