/* NewsRay editorial design system. No remote fonts; usable on slow connections. */
:root {
  --bg: #f4f6f8; --bg-card: #fff; --ink: #183247; --ink-2: #465b6b;
  --accent: #154e70; --gold: #c59c51; --muted: #617380; --border: #dae3e9;
  --good: #23724e; --bad: #b03f39; --warn: #90601b; --quick: #edf3f7;
  --nr-shadow: 0 6px 24px rgba(22, 47, 66, .045);
}
body { color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased; }
.container, body:has(#nr-workspace) main.container { max-width: 1240px; padding: 28px 32px 80px; }
.topbar { min-height: 80px; padding: 16px max(28px, calc((100vw - 1176px) / 2)); background: #112c43; border-bottom: 3px solid var(--gold); }
.topbar .brand { color: #f4d49b; font-size: 24px; letter-spacing: -.8px; }
.brand a { display: flex; align-items: center; gap: 12px; }
.nr-brand-mark { width: 36px; height: 36px; flex-shrink: 0; }
.brand small { display: block; color: #c7d4de; font: 10px/1.3 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: 1.5px; text-transform: uppercase; }
.topbar .who { gap: 20px; opacity: 1; }
.topbar-link { font-size: 13px; opacity: 1; }
.topbar-user { color: #e2c184 !important; }
.topbar button { padding: 7px 11px; border-radius: 7px; }
.btn { border-radius: 8px; padding: 10px 15px; min-height: 38px; font-weight: 600; transition: background .15s, border-color .15s; }
.btn:hover { background: #edf3f7; border-color: #9eb3c3; text-decoration: none; }
.btn.primary { background: #154e70; border-color: #154e70; box-shadow: 0 2px 3px #1832470d; }
.btn.primary:hover { background: #103e5a; }
.btn.good { background: #e7f3eb; color: #216644; border-color: #bfdcc9; }
.btn.danger { background: #fff5f3; color: #a13933; border-color: #e5c5c1; }
.btn:disabled { opacity: .55; cursor: wait; }
input, select, textarea, button { font: inherit; }
input:not([type=checkbox]):not([type=radio]):not([type=file]), select, textarea { border: 1px solid #c6d3dd; border-radius: 7px; padding: 9px 10px; background: white; color: var(--ink); max-width: 100%; }
input[type=checkbox], input[type=radio] { accent-color: #154e70; min-width: 18px; min-height: 18px; }
:focus-visible { outline: 3px solid #3a89b7; outline-offset: 3px; }
h1,h2,h3 { color: #183247; letter-spacing: -.025em; }
.step-header { background: none; border: 0; border-radius: 0; box-shadow: none; padding: 0 0 22px !important; border-bottom: 1px solid var(--border); margin-bottom: 26px !important; }
.step-badge { background: #e4edf3; color: #154e70; border-radius: 12px; }
.step-title { color: #183247; font-size: 22px !important; }
.step-eyebrow { color: var(--muted); letter-spacing: 1.2px; font-size: 10px; }
.step-desc { font-size: 13px; color: var(--muted); }
.step-rail { gap: 14px; }
.step-rail-item { font-size: 12px; }
.step-rail-item a { color: inherit; text-decoration: none; }
.step-rail-item.is-current { color: #154e70; }
.step-rail-item.is-current .step-rail-num { background: #154e70; color: white; }
.nr-eyebrow { display: block; font-size: 10px; font-weight: 750; letter-spacing: 1.7px; color: #577286; margin: 0 0 12px; }
.nr-home-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(300px,1fr); gap: 28px; margin: 12px 0 30px; }
.nr-home-lead { padding: 26px 30px 0 0; }
.nr-home-lead h1 { font-family: Georgia, 'Times New Roman', serif; font-size: clamp(32px,3.3vw,43px); font-weight: 500; line-height: 1.16; margin: 0 0 18px; }
.nr-lead-copy { color: #536c7b; line-height: 1.65; max-width: 460px; margin: 0 0 25px; }
.nr-current { background: white; border-radius: 12px; padding: 24px; margin: 0; border-top: 3px solid #c59c51; box-shadow: var(--nr-shadow); }
.nr-current h2 { font-size: 23px; margin: 0; }
.nr-current p { margin: 9px 0 15px; font-size: 14px; color: #536c7b; }
.nr-current .nr-tools { margin-bottom: 0; }
.nr-current-counts { font-size: 12px; line-height: 1.6; padding: 10px 0; border-top: 1px solid #e8eef2; }
.nr-collect-panel { background: #eaf1f5; border: 1px solid #d8e3eb; border-radius: 14px; padding: 30px; align-self: stretch; }
.nr-collect-panel h2 { font-size: 26px; margin: 0 0 14px; }
.nr-collect-panel p { font-size: 14px; line-height: 1.65; color: #4f6574; }
.nr-collect-panel label { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; font-weight: 600; margin: 24px 0 8px; }
.nr-collect-panel input { width: 100%; min-height: 44px; }
.nr-collect-panel .btn { width: 100%; margin-top: 14px; min-height: 46px; }
.nr-collection-promise { padding-left: 21px; color: #516b7c; font-size: 12px; line-height: 2.1; margin: 22px 0 12px; }
.nr-collect-panel .muted { font-size: 12px; }
.nr-text-link { font-size: 12px; font-weight: 650; text-underline-offset: 3px; }
.nr-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 15px; margin: 32px 0 16px; }
.nr-section-heading h2 { margin: 0; font-size: 25px; }
.nr-section-heading .nr-eyebrow { margin-bottom: 5px; }
.editions-table { box-shadow: var(--nr-shadow); }
.editions-table th { font-size: 10px !important; text-transform: uppercase; letter-spacing: .8px; padding: 14px !important; }
.editions-table td { padding: 17px 14px !important; }
.editions-table tbody tr:hover { background: #f8fbfd; }
.edition-date { font-size: 14px; }
.pill { font-size: 10px; letter-spacing: .5px; padding: 3px 8px; border-radius: 5px; }
.edition-head { margin-bottom: 18px; }
.edition-head h1 { font-size: clamp(24px,3vw,32px); }
.nr-savebar { border: 1px solid #cad9d2; border-radius: 8px; background: #f0f7f3; color: #295a43; padding: 9px 14px; box-shadow: var(--nr-shadow); }
.nr-readiness { border-radius: 12px; box-shadow: var(--nr-shadow); }
.nr-day { padding: 12px; background: #f8fafb; border-radius: 8px; }
.nr-day-empty { background: #fffbf3; }
.nr-layout { grid-template-columns: 180px minmax(0,1fr); gap: 26px; }
.nr-outline { border: 0; background: transparent; padding: 14px 0; }
.nr-outline strong { font-size: 10px; text-transform: uppercase; letter-spacing: 1.4px; color: var(--muted); margin-bottom: 8px; }
.nr-outline a { padding: 10px 12px; border-radius: 7px; font-size: 13px; text-decoration: none; }
.nr-outline a:hover { background: #e6eef4; }
.nr-outline a span { font-variant-numeric: tabular-nums; color: var(--muted); }
.nr-editor { border-radius: 12px; padding: 22px; box-shadow: var(--nr-shadow); }
.nr-editor h2 { margin-top: 0; }
.nr-rich { border-radius: 8px; min-height: 125px; }
.nr-story { padding: 22px !important; border: 1px solid #dbe4eb; border-radius: 12px; box-shadow: var(--nr-shadow); margin: 16px 0 !important; overflow-wrap: anywhere; }
.nr-story.card-accepted { border-left: 4px solid #6da087; }
.nr-story.card-rejected { border-left: 4px solid #bd827d; }
.nr-story h3 { font-size: 23px; line-height: 1.3; margin: 14px 0; }
.nr-story-heading { font-size: 11px; }
.nr-drag-handle { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border:1px solid #bacddb; border-radius:6px; background:#edf4f8; color:#315870; cursor:grab; user-select:none; touch-action:none; font-size:12px; font-weight:650; }
.nr-drag-handle>span { font-size:20px; line-height:1; }
.sortable-section .nr-story>h3 { cursor:grab; }
.nr-drag-chosen .nr-drag-handle,.nr-drag-chosen>h3 { cursor:grabbing; }
.nr-story.nr-drag-ghost { opacity:.35; background:#d6e9f5; border:2px dashed #33789e; }
.sortable-section { min-height:72px; }
.nr-fieldset:disabled .nr-drag-handle { display:none; }
.nr-fieldset:disabled .nr-story>h3 { cursor:default; }
.nr-story-summary { display: flex; align-items: start; gap: 18px; padding: 12px 0 18px; }
.nr-story-summary img { width: 136px; height: 102px; object-fit: cover; border-radius: 8px; flex-shrink: 0; }
.nr-story-summary p { margin: 0 0 8px; font-size: 14px; line-height: 1.7; color: #4c6272; }
.nr-story-summary a { font-size: 12px; }
.nr-story:has(.nr-copy[open]) .nr-story-summary { display: none; }
.nr-copy, .nr-photo { border-top: 1px solid #e6edf2; padding: 5px 0; }
.nr-copy summary, .nr-photo summary { font-size: 13px; color: #315870; }
.nr-filter { gap: 8px; border-radius: 8px; }
.nr-filter select { font-size: 12px; }
.candidate-toolbar { position: sticky; top: 0; z-index: 25; padding: 16px 18px; background: #fff; border: 1px solid #cedce6; border-top: 3px solid #154e70; border-radius: 10px; box-shadow: 0 6px 20px #18324712; }
.candidate-toolbar .muted { font-size: 12px; }
.nr-selection-count { font-size: 13px; font-weight: 650; color: #154e70; margin-left: auto; }
.candidate-cards { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.candidate-cards > .nr-filter { position: static; margin: 0; padding: 12px 0 0; }
.nr-candidate-results { display: flex; justify-content: space-between; font-size: 12px; color: var(--muted); }
.nr-empty-results { padding: 36px 20px; background: white; border: 1px dashed #bacddc; border-radius: 10px; text-align: center; }
.candidate-card { margin: 0; padding: 20px; border: 1px solid #dbe4eb; border-radius: 12px; box-shadow: var(--nr-shadow); gap: 16px; transition: border-color .15s, background .15s; }
.candidate-card:hover { border-color: #97b2c6; }
form[data-collection] .candidate-card:has(input:checked) { background: #f3f9fc; border-color: #6d9fbb; box-shadow: inset 4px 0 0 #33789e; }
.candidate-card-img { width: 128px; height: 96px; border-radius: 8px; object-fit: cover; }
.candidate-card-title { font-size: 20px; line-height: 1.35; color: #183247; }
.candidate-card-source { font-size: 11px; color: #3d6b87; }
.candidate-card-when { font-size: 11px; }
.candidate-card .candidate-card-when { color: #617380; }
.candidate-card-link, .linklike { color: #154e70; }
.candidate-card-desc { line-height: 1.65; color: #556c7c; }
.candidate-panel-head { padding: 16px; background: #eaf1f5; }
.candidate-events { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: white; }
.candidate-row { padding: 15px 18px; }
.candidate-row:has(input:checked) { background: #f5f9fb; }
.flash-error { border-radius: 10px; background: #fff7f3; font-size: 13px; }
.nr-health-item { border-radius: 7px; }
#export-preview-editable { box-shadow: var(--nr-shadow); border-radius: 12px; }
@media (max-width: 1000px) {
  .topbar { padding: 16px 24px; } .topbar .who { gap: 12px; }
  .nr-home-grid { gap: 20px; grid-template-columns: minmax(0,1.2fr) minmax(290px,1fr); }
  .nr-home-lead { padding-right: 0; } .nr-collect-panel { padding: 24px; }
  .step-header { gap: 16px; } .step-rail { width: 100%; justify-content: space-between; }
}
@media (max-width: 850px) {
  .nr-layout { grid-template-columns: 1fr; }
  .nr-outline { padding: 0; } .nr-outline a { padding: 8px; }
  .nr-source-columns { grid-template-columns: 1fr; }
  .nr-filter { position: static; }
}
@media (max-width: 680px) {
  .container, body:has(#nr-workspace) main.container { padding: 22px 16px 60px; }
  .topbar { padding: 14px 16px; flex-wrap: wrap; gap: 18px; }
  .topbar .who { width: 100%; justify-content: flex-start; gap: 15px; }
  .topbar-user { margin-left: auto; } .topbar .who form { margin-left: 0; }
  .topbar .brand { font-size: 23px; }
  .nr-home-grid { grid-template-columns: 1fr; gap: 24px; }
  .nr-home-lead { padding: 4px 0 0; } .nr-home-lead h1 { font-size: 36px; }
  .nr-current, .nr-collect-panel { padding: 22px; }
  .nr-section-heading { display: block; } .nr-section-heading .muted { display: block; margin-top: 8px; }
  .step-rail { gap: 6px; flex-wrap: nowrap; align-items: start; }
  .step-rail-item { flex: 1; flex-direction: column; gap: 6px; text-align: center; }
  .step-rail-item a { flex-direction: column; }
  .step-rail-item:not(:last-child)::after { display: none; }
  .step-rail-label { display: block; font-size: 10px; } .step-rail-num { width: 20px; height: 20px; font-size: 11px; }
  .nr-story { padding: 17px !important; } .nr-story h3 { font-size: 21px; }
  .nr-story-summary { flex-direction: column; } .nr-story-summary img { width: 100%; height: 170px; }
  .candidate-toolbar { position: static; padding: 14px; }
  .nr-selection-count { width: 100%; margin: 0; }
  .candidate-card { padding: 15px; gap: 12px; } .candidate-card-img { width: 80px; height: 70px; }
  .candidate-card-title { font-size: 18px; }
  .candidate-cards .nr-filter > * { min-width: 0; flex: 1 1 44%; }
  .candidate-cards .nr-filter input[type=search] { flex-basis: 100%; }
  .nr-savebar { position: static; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }
