/* News cards and the same sanitized Markdown layout on every surface. */
.cn-feed { margin-top:46px; padding-top:32px; border-top:1px solid var(--ov-line); }
.cn-feed__heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:23px; }
.overview .cn-feed__heading h2 { margin:8px 0 7px; color:var(--ov-ink); font-size:29px; font-weight:500; letter-spacing:-.04em; }
.overview .cn-feed__heading > div > p:last-child { color:var(--ov-muted); font-size:13px; }
.cn-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:21px; }
.cn-card { display:flex; flex-direction:column; min-width:0; overflow:hidden; border:1px solid var(--ov-line); border-radius:19px; background:var(--ov-surface); transition:transform .25s,box-shadow .25s,border-color .25s; }
.cn-card:hover { transform:translateY(-4px); box-shadow:var(--ov-shadow); border-color:color-mix(in srgb,var(--ov-green) 30%,var(--ov-line)); }
.cn-card__visual { position:relative; display:block; aspect-ratio:1.95; overflow:hidden; background:var(--ov-soft); color:var(--ov-green); }
.cn-card__visual img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .4s; }
.cn-card:hover .cn-card__visual img { transform:scale(1.035); }
.cn-card__visual--empty { display:flex; align-items:center; justify-content:center; gap:13px; background:radial-gradient(ellipse at 95% 0%,#526e45,transparent 70%),linear-gradient(120deg,#1c3b2e,#2e5035); color:#d9e6c4; text-decoration:none; }
.cn-card__visual--empty .ov-icon { width:30px; height:30px; opacity:.7; }
.cn-card__visual--empty span { font-size:12px; font-weight:550; letter-spacing:.16em; }
.cn-card__body { display:flex; flex-direction:column; align-items:flex-start; flex:1; padding:23px; }
.cn-card__body time { color:var(--ov-muted); font-size:10px; font-variant-numeric:tabular-nums; }
.overview .cn-card__body h3 { margin:10px 0 12px; color:var(--ov-ink); font-size:20px; font-weight:550; line-height:1.4; letter-spacing:-.03em; overflow-wrap:anywhere; }
.cn-card__body h3 a { color:inherit; text-decoration:none; }
.cn-card__body h3 a:hover { color:var(--ov-green); }
.overview .cn-card__body p { margin:0 0 22px; color:var(--ov-muted); font-size:12px; line-height:1.85; overflow-wrap:anywhere; }
.cn-card__more { display:inline-flex; align-items:center; gap:15px; margin-top:auto; color:var(--ov-green); text-decoration:none; font-size:12px; font-weight:550; }
.cn-card__more .ov-icon { width:15px; height:15px; }
.cn-feed__empty { min-height:200px; }
.cn-page-heading { margin-bottom:28px; }
.overview .cn-page-heading h1 { margin:10px 0 12px; color:var(--ov-ink); font-size:clamp(31px,3.5vw,43px); font-weight:500; line-height:1.15; letter-spacing:-.045em; }
.overview .cn-page-heading > p:last-child { color:var(--ov-muted); font-size:14px; }
.cn-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:20px; margin-top:30px; color:var(--ov-muted); font-size:12px; }
.cn-pagination a,.cn-back { display:inline-flex; padding:10px 14px; border:1px solid var(--ov-line); border-radius:9px; background:var(--ov-surface); color:var(--ov-green); font-size:12px; font-weight:500; text-decoration:none; }
.cn-back { margin-bottom:22px; }
.cn-article { max-width:1000px; margin:0 auto; overflow:hidden; border:1px solid var(--ov-line); border-radius:22px; background:var(--ov-surface); box-shadow:var(--ov-shadow); }
.cn-article__cover { display:block; width:100%; max-height:480px; object-fit:cover; }
.cn-article__body { padding:38px 46px 44px; }
.cn-article__heading { margin-bottom:30px; padding-bottom:25px; border-bottom:1px solid var(--ov-line); }
.overview .cn-article__heading h1 { margin:12px 0 18px; color:var(--ov-ink); font-size:clamp(29px,3vw,40px); font-weight:500; line-height:1.2; letter-spacing:-.04em; overflow-wrap:anywhere; }
.cn-article__heading > p:last-child { display:flex; flex-wrap:wrap; gap:7px; color:var(--ov-muted); font-size:12px; }
.news-markup { --nm-ink:var(--ov-ink,var(--text-primary,#243e35)); --nm-muted:var(--ov-muted,var(--text-secondary,#7b8982)); --nm-line:var(--ov-line,var(--border-medium,#e5ebe4)); --nm-soft:var(--ov-soft,var(--bg-secondary,#edf4eb)); --nm-green:var(--ov-green,var(--accent-primary,#297455)); color:var(--nm-ink); font-size:15px; line-height:1.9; overflow-wrap:anywhere; }
.news-detail-content.news-markup { white-space:normal; }
.news-markup.news-markup p { margin:0 0 18px; color:inherit; font-size:inherit; line-height:inherit; }
.news-markup.news-markup :is(h1,h2,h3,h4,h5,h6) { margin:30px 0 15px; color:var(--nm-ink); font-weight:600; line-height:1.35; letter-spacing:-.025em; }
.news-markup.news-markup h1 { font-size:1.85em; }
.news-markup.news-markup h2 { font-size:1.55em; padding-bottom:10px; border-bottom:1px solid var(--nm-line); }
.news-markup.news-markup h3 { font-size:1.3em; }
.news-markup.news-markup :is(h4,h5,h6) { font-size:1.1em; }
.news-markup.news-markup :first-child { margin-top:0; }
.news-markup.news-markup :last-child { margin-bottom:0; }
.news-markup.news-markup :is(ul,ol) { display:block; margin:0 0 18px; padding-left:25px; list-style:disc outside; }
.news-markup.news-markup ol { list-style:decimal outside; }
.news-markup.news-markup li { margin:6px 0; padding-left:3px; }
.news-markup.news-markup li > :is(ul,ol) { margin:8px 0; }
.news-markup.news-markup li p { margin:0; }
.news-markup.news-markup a { color:var(--nm-green); text-decoration:underline; text-underline-offset:3px; }
.news-markup.news-markup a:hover { opacity:.75; }
.news-markup.news-markup img { display:block; max-width:100%; height:auto; margin:22px auto; border:1px solid var(--nm-line); border-radius:13px; }
.news-markup.news-markup blockquote { margin:22px 0; padding:15px 22px; border-left:3px solid var(--nm-green); border-radius:0 10px 10px 0; background:var(--nm-soft); color:var(--nm-muted); }
.news-markup.news-markup code { padding:3px 6px; border:1px solid var(--nm-line); border-radius:5px; background:var(--nm-soft); color:var(--nm-ink); font:0.87em/1.65 Consolas,'Courier New',monospace; }
.news-markup.news-markup pre { max-width:100%; margin:20px 0; padding:20px; border:1px solid var(--nm-line); border-radius:12px; background:var(--nm-soft); overflow:auto; white-space:pre; }
.news-markup.news-markup pre code { padding:0; border:0; border-radius:0; background:transparent; font-size:13px; }
.news-markup.news-markup table { display:block; max-width:100%; width:max-content; margin:22px 0; border:1px solid var(--nm-line); border-radius:10px; border-collapse:collapse; overflow-x:auto; font-size:13px; }
.news-markup.news-markup :is(th,td) { min-width:90px; padding:11px 15px; border:1px solid var(--nm-line); background:transparent; color:var(--nm-ink); text-align:left; }
.news-markup.news-markup th { background:var(--nm-soft); font-weight:600; }
.news-markup.news-markup hr { margin:28px 0; border:0; border-top:1px solid var(--nm-line); }
#panel-news .news-manager-grid { grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr); }
#newsEditorCard { min-width:0; scroll-margin-top:95px; }
#newsEditorCard .admin-card__header { align-items:flex-start; gap:15px; flex-wrap:wrap; }
#newsEditorCard .admin-card__hint { margin-top:8px; line-height:1.6; }
#newsEditorForm .ne-label { display:flex; justify-content:space-between; align-items:center; gap:15px; margin-bottom:9px; }
#newsEditorForm .ne-label .form-label { margin:0; }
.ne-modes { display:flex; gap:4px; }
.ne-modes button,.ne-toolbar button { min-height:32px; margin:0; padding:6px 10px; border:1px solid var(--border-medium); border-radius:7px; background:var(--bg-secondary); color:var(--text-secondary); font:inherit; font-size:11px; cursor:pointer; }
.ne-modes button[aria-pressed="true"] { background:var(--accent-primary); border-color:var(--accent-primary); color:var(--on-accent,#fff); }
.ne-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:5px; padding:10px; border:1px solid var(--border-medium); border-bottom:0; border-radius:10px 10px 0 0; background:var(--bg-secondary); }
.ne-toolbar button { background:var(--bg-card); color:var(--text-primary); }
.ne-toolbar button:hover { border-color:var(--accent-primary); color:var(--accent-primary); }
.ne-toolbar button:disabled { opacity:.5; cursor:wait; }
#newsEditorForm .ne-textarea { width:100%; min-height:330px; margin:0; border-radius:0 0 10px 10px; font:13px/1.8 Consolas,'Courier New',monospace; resize:vertical; }
.ne-preview { min-height:350px; padding:23px; border:1px solid var(--border-medium); border-radius:12px; background:var(--bg-card); }
.ne-status { min-height:19px; margin:10px 0 6px; color:var(--text-muted); font-size:11px; }
.ne-status.is-error { color:#b86d50; }
.ne-help { margin:7px 0 0; color:var(--text-muted); font-size:11px; line-height:1.8; }
.ne-help code { font-family:Consolas,monospace; }
.ne-cover { margin-bottom:22px; padding:15px 17px; border:1px solid var(--border-medium); border-radius:10px; }
.ne-cover summary { cursor:pointer; font-size:13px; font-weight:550; }
.ne-cover summary span { margin-left:5px; color:var(--text-muted); font-size:10px; font-weight:400; }
.ne-cover[open] summary { margin-bottom:18px; }
#newsEditorForm [hidden],#newsEditCancel[hidden] { display:none!important; }
@media(max-width:1150px) { .cn-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } #panel-news .news-manager-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:650px) { .cn-feed { margin-top:34px; padding-top:26px; } .cn-feed__heading { align-items:flex-start; gap:15px; } .overview .cn-feed__heading h2 { font-size:26px; } .cn-feed__heading .ov-inline-link { margin-top:7px; font-size:11px; white-space:nowrap; } .overview .cn-feed__heading > div > p:last-child { font-size:11px; } .cn-grid { grid-template-columns:1fr; gap:17px; } .cn-card__body { padding:22px; } .cn-article { border-radius:17px; } .cn-article__body { padding:26px 23px 30px; } .news-markup { font-size:14px; line-height:1.85; } .news-markup.news-markup pre { padding:15px; } .news-markup.news-markup pre code { font-size:11px; } .ne-toolbar { gap:4px; padding:8px; } .ne-toolbar button { font-size:10px; padding:6px 8px; } #newsEditorForm .ne-label { display:block; } .ne-modes { margin-top:10px; } .ne-preview { padding:17px; } }
@media(prefers-reduced-motion:reduce) { .cn-card,.cn-card img { transition:none; } }
