* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family: Inter, Arial, Helvetica, sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor:pointer; }
.topbar { min-height:105px; padding:24px clamp(20px,4vw,58px); display:flex; justify-content:space-between; align-items:end; gap:24px; background:var(--deep); color:white; }
.topbar h1 { margin:2px 0 0; font-size:clamp(26px,3vw,42px); font-weight:600; letter-spacing:-.03em; }
.eyebrow, .step { margin:0; font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; }
.status-line { font-size:12px; opacity:.85; display:flex; align-items:center; gap:8px; }
.status-dot { width:8px; height:8px; background:#8fd3a6; border-radius:50%; display:inline-block; }
.shell { display:grid; grid-template-columns:minmax(430px,.9fr) minmax(560px,1.1fr); min-height:calc(100vh - 105px); }
.editor-panel, .preview-panel { padding:clamp(24px,3vw,46px); }
.editor-panel { background:var(--surface); border-right:1px solid var(--line); }
.preview-panel { overflow:hidden; }
.section-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:26px; }
.section-head h2, .section-head h3 { margin:8px 0 0; font-weight:600; letter-spacing:-.025em; }
.section-head h2 { font-size:clamp(24px,2.2vw,34px); }
.section-head h3 { font-size:20px; }
.preview-head h2 { text-transform:uppercase; max-width:460px; }
.preview-note { font-size:12px; color:var(--muted); border:1px solid var(--line); padding:7px 9px; }
fieldset { border:0; padding:0; margin:0 0 28px; }
legend { font-size:12px; text-transform:uppercase; font-weight:700; letter-spacing:.12em; margin-bottom:13px; }
.internal-box { background:#f3f4f5; border:1px dashed #bfc4c8; padding:18px; }
.internal-box legend { padding:0 6px; }
.publication-help { margin:0 0 16px; padding:12px 14px; border-left:3px solid var(--blue); background:#e9f0f2; color:#4f5d64; font-size:12px; line-height:1.55; }
.publication-help strong,.date-help strong { color:var(--ink); }
.grid { display:grid; gap:14px; }
.grid.two { grid-template-columns:1fr 1fr; }
label { display:block; position:relative; margin-bottom:14px; font-size:12px; font-weight:700; letter-spacing:.02em; }
input, select, textarea { width:100%; border:1px solid #bbc1c6; background:white; padding:12px 13px; margin-top:7px; color:var(--ink); border-radius:var(--radius); outline:none; transition:border-color .15s, box-shadow .15s; }
textarea { resize:vertical; min-height:120px; line-height:1.5; }
input:focus, select:focus, textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(35,95,145,.10); }
.muted { color:var(--muted); font-weight:400; }
.counter { position:absolute; right:10px; bottom:10px; font-size:10px; color:var(--muted); background:white; padding-left:6px; }
.checks { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:4px; }
.check { display:flex; align-items:center; gap:8px; margin:0; font-weight:600; }
.check input { width:auto; margin:0; accent-color:var(--blue); }
.media-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.media-fit { margin-top:14px; }
.media-help { display:block; margin-top:6px; font-size:11px; }
.dropzone { min-height:118px; border:1px dashed #aab1b7; padding:16px; display:flex; flex-direction:column; gap:7px; justify-content:center; background:#fafafa; }
.dropzone input { border:0; padding:0; margin:2px 0; font-size:12px; background:transparent; }
.dropzone span { font-weight:400; color:var(--muted); }
.file-name { font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.actions { display:flex; gap:10px; flex-wrap:wrap; padding-top:3px; }
.btn { border:1px solid transparent; padding:11px 16px; min-height:42px; font-size:12px; font-weight:700; letter-spacing:.03em; }
.btn.primary { background:var(--pink); color:#fff; }
.btn.secondary { background:var(--blue); color:#fff; }
.btn.ghost { background:transparent; color:var(--ink); border-color:#b9bec3; }
.btn:hover { filter:brightness(.97); }
.feedback { min-height:20px; margin:12px 0 0; padding:0; font-size:12px; line-height:1.45; color:var(--blue); transition:padding .15s,background .15s,border-color .15s; }
.feedback.is-success,.feedback.is-warning,.feedback.is-danger { padding:12px 14px; border:1px solid; font-weight:700; }
.feedback.is-success { color:#175c3a; background:#e6f4ec; border-color:#9ecdb2; }
.feedback.is-warning { color:#674700; background:#fff2c9; border-color:#dfb94e; }
.feedback.is-danger { color:#8a2424; background:#fff0ef; border-color:#db8c87; }
.required-mark { color:#b52d2d; }
.field-error { display:block; margin-top:6px; color:#a52626; font-size:11px; font-weight:700; }
input.is-invalid,textarea.is-invalid,select.is-invalid,.dropzone.is-invalid { border-color:#c53a32; box-shadow:0 0 0 3px rgba(197,58,50,.10); }
.gallery-wrap { position:relative; margin-inline:-4px; }
.gallery { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; padding:4px 54px 14px 4px; scroll-behavior:smooth; }
.gallery::-webkit-scrollbar { display:none; }
.news-card { position:relative; flex:0 0 min(70%, 490px); background:white; scroll-snap-align:start; min-height:570px; display:flex; flex-direction:column; box-shadow:0 10px 28px rgba(20,31,40,.06); }
.news-visual { height:250px; overflow:hidden; background:#e8ecee; }
.news-visual img { width:100%; height:100%; display:block; object-position:center; }
.news-visual.fit-contain img { object-fit:contain; }
.news-visual.fit-cover img { object-fit:cover; }
.visual-placeholder { width:100%; height:100%; display:grid; place-items:center; color:#6e7780; font-size:11px; letter-spacing:.16em; background:linear-gradient(135deg,#dfe4e6,#cdd5d9); }
.news-content { padding:24px 25px 26px; display:flex; flex-direction:column; flex:1; }
.news-kicker { display:flex; gap:10px; flex-wrap:wrap; font-size:11px; letter-spacing:.10em; text-transform:uppercase; font-weight:800; margin-bottom:18px; }
.news-date { color:#6f7780; }
.news-overline { min-height:0; font-size:11px; text-transform:uppercase; letter-spacing:.11em; color:#6c747c; margin-bottom:7px; }
.news-overline:empty { display:none; }
.news-title { margin:0; font-size:clamp(23px,2vw,32px); line-height:1.06; letter-spacing:-.035em; font-weight:600; }
.news-subtitle { margin:14px 0 0; line-height:1.45; font-size:14px; font-weight:600; }
.news-subtitle:empty, .news-body:empty { display:none; }
.news-body { color:#59616a; font-size:13px; line-height:1.55; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.news-link { margin-top:auto; padding-top:22px; color:var(--ink); font-size:12px; font-weight:800; text-decoration:none; text-transform:uppercase; letter-spacing:.06em; }
.nav-btn { position:absolute; top:218px; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; border:1px solid #b8bdc2; background:rgba(245,242,235,.94); z-index:3; font-size:19px; }
.nav-btn.prev { left:-10px; }
.nav-btn.next { right:4px; }
.gallery-meta { display:flex; justify-content:space-between; gap:18px; font-size:11px; color:var(--muted); padding:4px 3px 0; }
.existing-block { margin-top:48px; border-top:1px solid var(--line); padding-top:30px; }
.section-head.compact { margin-bottom:16px; }
.post-list { display:grid; gap:8px; }
.post-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:15px; align-items:center; padding:13px 14px; background:rgba(255,255,255,.62); border:1px solid var(--line); }
.post-main { min-width:0; }
.post-main strong { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:13px; }
.post-meta { margin-top:5px; color:var(--muted); font-size:11px; }
.row-actions { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.mini-btn { border:1px solid #bcc1c5; background:white; padding:7px 9px; font-size:10px; font-weight:700; }
.mini-btn.danger { border-color:#d7a09c; color:#a62d27; }
.mini-btn.danger:hover,.mini-btn.danger:focus-visible { border-color:#a62d27; background:#fff0ef; }
.badge { display:inline-block; margin-left:6px; padding:2px 5px; font-size:9px; text-transform:uppercase; letter-spacing:.08em; background:#e7e9eb; }
.badge.pin { background:#e5edf5; color:var(--blue); }
.badge.draft { background:#fff0c9; color:#705300; }
@media (max-width: 1100px) {
  .shell { grid-template-columns:1fr; }
  .editor-panel { border-right:0; border-bottom:1px solid var(--line); }
  .news-card { flex-basis:min(78%, 480px); }
}
.module-choice { margin-bottom:22px; padding:18px; background:#eef3f4; border-left:4px solid var(--blue); }
.status-line a { color:inherit; font-weight:800; }
.badge.live { background:#d9efe5; }
.badge.scheduled { background:#fff0b8; }
.badge.expired { background:#e7e7e7; }
.badge.pinned { background:var(--deep); color:#fff; }
.post-row.is-pinned { border-left:4px solid var(--deep); padding-left:14px; background:#f4f7f7; }
.type-help { grid-column:1/-1; margin:0; color:#5e6970; font-size:12px; }
.editorial-dates { margin:0 0 18px; padding:16px; border:1px solid var(--line); background:#fafafa; }
.editorial-dates label:last-of-type { margin-bottom:7px; }
.date-help { margin:0; color:var(--muted); font-size:11px; line-height:1.45; }
[data-date-mode].is-date-hidden { display:none !important; }
[data-types].is-type-hidden { display:none !important; }
@media (max-width: 680px) {
  .topbar { align-items:flex-start; flex-direction:column; min-height:auto; }
  .grid.two, .media-grid { grid-template-columns:1fr; }
  .editor-panel, .preview-panel { padding:24px 18px; }
  .news-card { flex-basis:86%; min-height:520px; }
  .news-visual { height:220px; }
  .nav-btn { display:none; }
  .gallery { padding-right:44px; }
  .gallery-meta { align-items:flex-start; flex-direction:column; }
  .post-row { grid-template-columns:1fr; }
  .row-actions { justify-content:flex-start; }
}
