/* 釣りニュース /news（docs/news/phase1.md §4.6）。トークンは theboat.css の :root のみ。 */
.nw-page{max-width:var(--max-w-text);margin:0 auto;padding:0 var(--gutter) 32px;color:var(--ink)}
.nw-breadcrumb{display:flex;gap:6px;flex-wrap:wrap;font-size:var(--text-xs);color:var(--ink-3);padding-top:10px}
.nw-breadcrumb a{color:var(--ink-2)}
.nw-head h1{font-size:var(--text-xl);line-height:var(--lh-tight);margin:8px 0 4px;font-weight:800}
.nw-lead{margin:0 0 10px;color:var(--ink-3);font-size:var(--text-sm);line-height:1.6}
.nw-tabs{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px;margin:0 calc(var(--gutter) * -1);padding-left:var(--gutter);padding-right:var(--gutter);scrollbar-width:none}
.nw-tabs::-webkit-scrollbar{display:none}
.nw-tabs a{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink-2);text-decoration:none;font-size:var(--text-sm);font-weight:600;white-space:nowrap}
.nw-tabs a small{font-weight:500;color:var(--ink-3);font-size:11px}
.nw-tabs a[aria-current="page"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.nw-tabs a[aria-current="page"] small{color:var(--on-navy-2)}
.nw-facets{margin:0 0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:0 12px}
.nw-facets summary{min-height:var(--tap);display:flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--text-sm);font-weight:700;color:var(--ink-2)}
.nw-facet{display:grid;grid-template-columns:4em 1fr;gap:6px;align-items:start;padding:4px 0 8px;font-size:var(--text-sm)}
.nw-facet-label{color:var(--ink-3);padding-top:6px}
.nw-facet .tb-chip.is-active{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-strong)}
.nw-list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}
.nw-item{position:relative;padding:12px 12px 10px;border-top:1px solid var(--line);display:grid;gap:4px 10px;grid-template-columns:minmax(0,1fr);grid-template-areas:"meta" "title" "excerpt" "foot"}
.nw-item.has-thumb{grid-template-columns:minmax(0,1fr) 96px;grid-template-areas:"meta meta" "title thumb" "excerpt thumb" "foot foot"}
.nw-item .nw-meta{grid-area:meta}.nw-item .nw-title{grid-area:title}.nw-item .nw-excerpt{grid-area:excerpt}.nw-item .nw-foot-row{grid-area:foot}
.nw-item:first-child{border-top:0}
.nw-meta{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:11px;color:var(--ink-3)}
.nw-src{font-weight:700;color:var(--ink-2)}
.nw-src[data-kind="maker"]{color:var(--brand-strong)}
.nw-src[data-kind="government"]{color:var(--good)}
.nw-src[data-kind="academic"]{color:#5b3fb8}
.nw-src[data-kind="boat"]{color:var(--navy)}
.nw-kind{border:1px solid var(--line);border-radius:999px;padding:0 6px;line-height:16px}
.nw-cat{color:var(--ink-3);text-decoration:none}
.nw-cat:hover{text-decoration:underline}
.nw-meta time{margin-left:auto;font-variant-numeric:tabular-nums}
.nw-title{color:var(--ink);text-decoration:none;font-size:var(--text-md);font-weight:700;line-height:1.45;overflow-wrap:anywhere}
.nw-title:hover{text-decoration:underline}
.nw-ext{font-size:12px;color:var(--ink-3);margin-left:4px}
.nw-excerpt{margin:0;font-size:var(--text-sm);color:var(--ink-2);line-height:1.6;overflow-wrap:anywhere}
.nw-excerpt small{color:var(--ink-3)}
.nw-thumb-link{grid-area:thumb;align-self:start;display:block;width:96px;height:72px;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.nw-thumb{display:block;width:100%;height:100%;object-fit:contain;background:var(--surface-2)}
.nw-foot-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--ink-3)}
.nw-ext-link{margin-left:auto;color:var(--ink-3);text-decoration:none;min-height:28px;display:inline-flex;align-items:center;padding:0 4px}
.nw-ext-link:hover{color:var(--brand-strong);text-decoration:underline}
.nw-others{font-size:11px;color:var(--ink-3)}
.nw-pager{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:12px 0}
.nw-pager .tb-btn{min-height:var(--tap)}
.nw-empty{margin:12px 0}
.nw-foot{margin-top:16px;line-height:1.7}
.nw-error{color:var(--poor);font-size:var(--text-sm)}
/* 説明ページ */
.nw-prose h1{font-size:var(--text-xl);margin:8px 0 10px;font-weight:800}
.nw-prose h2{font-size:var(--text-md);margin:18px 0 6px}
.nw-prose p,.nw-prose li{font-size:var(--text-base);line-height:1.8}
.nw-prose ul{padding-left:1.2em}
.nw-src-table small{display:block}
.nw-form{display:grid;gap:10px;max-width:520px;margin:12px 0}
.nw-form label{display:grid;gap:4px;font-size:var(--text-sm);font-weight:700;color:var(--ink-2)}
.nw-form .tb-input,.nw-form select{font:inherit;font-weight:400;min-height:var(--tap);padding:8px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface)}
.nw-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* 関連ニュース枠 */
.nw-related{margin-top:14px}
.nw-related-list{list-style:none;margin:0;padding:0}
.nw-related-list li{display:grid;grid-template-columns:auto auto;gap:2px 8px;padding:8px 0;border-top:1px solid var(--line);font-size:var(--text-sm)}
.nw-related-list li:first-child{border-top:0}
.nw-related-list li .nw-src{font-size:11px}
.nw-related-list li time{font-size:11px;color:var(--ink-3);justify-self:end}
.nw-related-list li a{grid-column:1 / -1;color:var(--ink);text-decoration:none;font-weight:600;line-height:1.45}
/* 管理 */
.nw-admin{max-width:var(--max-w)}
.nw-admin h2{font-size:var(--text-md);margin:18px 0 8px}
.nw-admin h2 small{font-weight:500;font-size:12px;margin-left:8px}
.nw-admin-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0}
.nw-admin-table{font-size:12px}
.nw-admin-table td,.nw-admin-table th{vertical-align:top}
.nw-admin-table tr.is-off td{opacity:.6}
.nw-admin-table tr.is-review td{background:var(--fair-tint)}
.nw-inline-form{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:0}
.nw-inline-form select,.nw-inline-form .tb-input{font:inherit;min-height:32px;padding:2px 6px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface)}
.nw-inline-form label{display:inline-flex;gap:2px;align-items:center;white-space:nowrap}
.nw-admin-add{margin:10px 0}
.nw-admin-add summary{min-height:var(--tap);display:flex;align-items:center;font-weight:700;cursor:pointer}
@media (min-width:640px){
  .nw-item.has-thumb{grid-template-columns:minmax(0,1fr) 160px}
  .nw-thumb-link{width:160px;height:100px}
}
/* 紹介ページ */
.nw-detail{max-width:var(--max-w-text)}
.nw-article h1{font-size:var(--text-xl);line-height:1.35;margin:6px 0 10px;font-weight:800;overflow-wrap:anywhere}
.nw-hero{margin:0 0 12px}
.nw-hero a{display:block;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--surface-2)}
.nw-hero img{display:block;width:100%;max-height:360px;object-fit:contain;background:var(--surface-2)}
.nw-hero figcaption{margin-top:4px}
.nw-snippet{margin:0 0 12px;padding:10px 12px;border-left:3px solid var(--line-strong);background:var(--surface);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.nw-snippet p{margin:0;font-size:var(--text-base);line-height:1.7;color:var(--ink-2)}
.nw-snippet cite{display:block;margin-top:4px;font-style:normal;font-size:11px;color:var(--ink-3)}
.nw-cta{margin:0 0 8px}
.nw-cta .tb-btn{min-height:var(--tap);width:100%;justify-content:center}
.nw-disclaimer{line-height:1.6}
.nw-detail-section{margin:16px 0 0;border-top:1px solid var(--line);padding-top:12px}
.nw-detail-section h2{font-size:var(--text-md);margin:0 0 8px}
.nw-detail .nw-related-list li a{color:var(--ink)}
