:root {
  --cream: #f6f0e6;
  --paper: #fffdf8;
  --ink: #292720;
  --muted: #706b61;
  --terracotta: #a94f38;
  --terracotta-dark: #803624;
  --sage: #58705d;
  --line: #d9d0c2;
  --soft: #ebe2d5;
  --white: #fff;
  --danger: #a32f2f;
  --shadow: 0 14px 40px rgba(75, 57, 38, .10);
  --radius: 18px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: Arial, Verdana, sans-serif; font-size: 17px; line-height: 1.6; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, .button { touch-action: manipulation; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { line-height: 1.16; }
h1 { font-size: clamp(2.1rem, 6vw, 4rem); letter-spacing: -.035em; }
h2 { font-size: clamp(1.35rem, 3.5vw, 2rem); }
main { width: min(1180px, calc(100% - 36px)); margin: 0 auto; min-height: calc(100vh - 170px); }
.narrow { max-width: 620px; margin: 70px auto; }
.muted { color: var(--muted); }

.site-header { width: min(1240px, calc(100% - 32px)); margin: 0 auto; min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.brand { text-decoration: none; line-height: 1.05; }
.brand span { display: block; color: var(--terracotta); font-size: .78rem; font-weight: bold; letter-spacing: .11em; text-transform: uppercase; }
.brand strong { display: block; font-size: 1.38rem; letter-spacing: -.03em; }
.site-header nav { display: flex; gap: 26px; align-items: center; }
.site-header nav a { text-decoration: none; font-weight: bold; font-size: .93rem; }
.site-header nav a:hover { color: var(--terracotta); }
.nav-toggle { display: none; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); padding: 8px 12px; font-weight: bold; }
.site-footer { width: min(1180px, calc(100% - 36px)); margin: 70px auto 0; padding: 25px 0 40px; color: var(--muted); border-top: 1px solid var(--line); text-align: center; font-size: .9rem; }

.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 12px 22px; border: 2px solid var(--terracotta); border-radius: 999px; background: var(--terracotta); color: var(--white); text-decoration: none; font-weight: bold; line-height: 1.2; cursor: pointer; transition: .18s ease; }
.button:hover { background: var(--terracotta-dark); border-color: var(--terracotta-dark); transform: translateY(-1px); }
.button:disabled { opacity: .5; cursor: not-allowed; }
.button-secondary { color: var(--terracotta-dark); background: transparent; }
.button-secondary:hover { color: var(--white); }
.button-large { min-height: 62px; padding-inline: 30px; font-size: 1.03rem; }
.button-small { min-height: 40px; padding: 8px 15px; font-size: .88rem; }
.button-full { width: 100%; }
.button-danger { background: var(--danger); border-color: var(--danger); }
.quiet-link, .back-link { display: inline-block; color: var(--muted); text-underline-offset: 4px; }
.back-link { margin-bottom: 26px; font-weight: bold; }
.eyebrow { margin-bottom: 10px; color: var(--terracotta); font-size: .78rem; font-weight: bold; letter-spacing: .14em; text-transform: uppercase; }
.category { display: inline-flex; color: var(--sage); font-size: .77rem; font-weight: bold; letter-spacing: .08em; text-transform: uppercase; }
.byline { color: var(--muted); font-size: .92rem; }

.login-page { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: clamp(40px, 8vw, 110px); min-height: calc(100vh - 170px); padding: 60px 0; }
.login-intro h1 { max-width: 780px; }
.login-intro > p:last-child { max-width: 640px; color: var(--muted); font-size: 1.12rem; }
.auth-card { padding: clamp(26px, 4vw, 46px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.auth-card h1, .auth-card h2 { margin-bottom: 12px; }
.auth-card .quiet-link { display: block; margin-top: 24px; text-align: center; font-size: .9rem; }
.admin-login { margin-top: 70px; }

.stack-form, .story-form { display: grid; gap: 22px; }
label { display: grid; gap: 7px; font-weight: bold; }
label small, .field-help, .optional { color: var(--muted); font-size: .85rem; font-weight: normal; }
input, textarea, select { width: 100%; min-height: 52px; padding: 12px 14px; border: 1px solid #bcb4a7; border-radius: 10px; background: var(--white); color: var(--ink); }
textarea { min-height: 160px; line-height: 1.55; resize: vertical; }
input:focus, textarea:focus, select:focus { outline: 3px solid rgba(169, 79, 56, .2); border-color: var(--terracotta); }
.form-error, .flash { padding: 14px 17px; border-radius: 10px; }
.form-error, .flash-error { border: 1px solid #e0a9a0; background: #fff0ed; color: #742418; }
.flash { position: fixed; z-index: 20; top: 108px; left: 50%; width: min(560px, calc(100% - 32px)); transform: translateX(-50%); box-shadow: var(--shadow); transition: .3s ease; }
.flash-success { border: 1px solid #a7c2ad; background: #edf8ef; color: #244f2d; }
.flash-hide { opacity: 0; transform: translate(-50%, -10px); pointer-events: none; }
.success-panel { text-align: center; }

.home-hero, .admin-heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; padding: 75px 0 50px; }
.home-hero h1, .page-heading h1, .admin-heading h1 { margin-bottom: 10px; }
.home-hero p:last-child, .page-heading > p:last-child, .admin-heading p:last-child { margin-bottom: 0; color: var(--muted); }
.article-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; }
.news-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 8px 26px rgba(75,57,38,.06); }
.card-image-link { display: block; height: 300px; overflow: hidden; background: var(--soft); }
.card-image-link img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.news-card:hover .card-image-link img { transform: scale(1.025); }
.image-placeholder { height: 100%; display: grid; place-items: center; color: var(--muted); }
.card-body { padding: 26px 28px 28px; }
.card-body h2 { margin: 7px 0 9px; }
.card-body h2 a { text-decoration: none; }
.card-body > p:not(.byline) { color: #4f4b43; }
.read-more { color: var(--terracotta-dark); font-weight: bold; text-underline-offset: 4px; }
.empty-state { margin: 60px auto; padding: 70px 25px; border: 1px dashed #bfb4a5; border-radius: var(--radius); text-align: center; background: rgba(255,255,255,.32); }
.empty-state p { color: var(--muted); }
.empty-icon { display: block; color: var(--terracotta); font-size: 2rem; }

.article-detail { max-width: 900px; margin: 55px auto; }
.article-detail > header { max-width: 760px; margin: 0 auto 35px; text-align: center; }
.article-detail h1 { margin: 10px 0 15px; }
.hero-photo { margin: 0 0 42px; }
.hero-photo img { width: 100%; max-height: 680px; object-fit: contain; border-radius: 14px; background: var(--soft); }
figcaption { margin-top: 8px; color: var(--muted); font-size: .86rem; line-height: 1.4; }
.article-copy { max-width: 720px; margin: 0 auto 44px; font-size: 1.18rem; line-height: 1.8; white-space: normal; }
.photo-gallery { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; }
.photo-gallery figure { margin: 0; }
.photo-gallery img { width: 100%; height: 380px; object-fit: cover; border-radius: 12px; }

.form-page { max-width: 860px; margin: 60px auto; }
.form-heading { margin-bottom: 36px; }
.form-heading > p:last-child { max-width: 690px; color: var(--muted); }
.form-section { display: grid; gap: 22px; padding: clamp(22px, 4vw, 38px); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.form-section h2 { margin-bottom: 0; }
.two-cols { grid-template-columns: 1fr 1fr; }
.upload-zone { min-height: 150px; padding: 26px; align-content: center; justify-items: center; border: 2px dashed #b6a995; border-radius: 14px; background: #faf6ef; text-align: center; cursor: pointer; }
.upload-zone:hover { border-color: var(--terracotta); }
.upload-zone input { width: min(100%, 400px); min-height: auto; border: 0; padding: 10px 0 0; background: transparent; }
.upload-previews, .existing-photos { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.photo-field { overflow: hidden; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.photo-field img { width: 100%; height: 210px; margin-bottom: 12px; border-radius: 8px; object-fit: cover; }
.sticky-submit { position: sticky; z-index: 8; bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 15px 18px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,253,248,.95); box-shadow: var(--shadow); backdrop-filter: blur(10px); }
.sticky-submit span { color: var(--muted); font-size: .88rem; }
.preview-page { margin: 55px auto; }
.preview-toolbar { max-width: 900px; margin: 0 auto 35px; display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.preview-toolbar h1 { margin-bottom: 0; }
.preview-toolbar > p { max-width: 270px; color: var(--muted); }
.preview-article { padding: 45px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow); }
.preview-actions { max-width: 900px; margin: 25px auto; display: flex; justify-content: space-between; gap: 20px; }

.page-heading { padding: 75px 0 40px; }
.issue-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.issue-card { padding: 30px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.issue-number { color: var(--terracotta); font-size: .8rem; font-weight: bold; text-transform: uppercase; letter-spacing: .1em; }

.area-admin { --terracotta: #486253; --terracotta-dark: #30473b; --cream: #eef1ed; --soft: #dfe7e0; }
.stat-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-bottom: 30px; }
.stat-row div { display: flex; align-items: baseline; gap: 9px; padding: 18px 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.stat-row strong { font-size: 1.8rem; }
.stat-row span { color: var(--muted); }
.filter-tabs { display: flex; gap: 8px; margin-bottom: 18px; }
.filter-tabs a { padding: 8px 15px; border-radius: 999px; text-decoration: none; font-weight: bold; font-size: .9rem; }
.filter-tabs a.active { background: var(--ink); color: var(--white); }
.admin-list { display: grid; gap: 12px; }
.admin-item { display: grid; grid-template-columns: 130px 1fr auto; gap: 20px; align-items: center; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.admin-item > img, .admin-thumb-empty { width: 130px; height: 96px; border-radius: 9px; object-fit: cover; }
.admin-thumb-empty { display: grid; place-items: center; color: var(--muted); background: var(--soft); font-size: .8rem; }
.admin-item h2 { margin: 4px 0; font-size: 1.2rem; }
.admin-item p { margin: 0; color: var(--muted); font-size: .87rem; }
.admin-item-meta { display: flex; gap: 12px; align-items: center; color: var(--muted); font-size: .75rem; }
.status { display: inline-flex; width: fit-content; padding: 3px 8px; border-radius: 99px; background: #eee; font-size: .72rem; font-weight: bold; text-transform: uppercase; letter-spacing: .05em; }
.status-published { background: #e2f0e5; color: #285034; }
.status-hidden { background: #f4e5e0; color: #7c3827; }
.status-draft { background: #eee9dc; color: #695e39; }
.admin-item-actions { display: flex; gap: 8px; }
.admin-photos { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.admin-photo { padding: 12px; border: 1px solid var(--line); border-radius: 12px; }
.admin-photo img { width: 100%; height: 220px; margin-bottom: 12px; border-radius: 8px; object-fit: cover; }
.move-buttons { display: flex; justify-content: space-between; margin-top: 10px; }
.move-buttons button { padding: 6px 10px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); cursor: pointer; }
.danger-zone { margin-top: 35px; padding: 18px 22px; border: 1px solid #d7aaa4; border-radius: 12px; background: #fff7f5; }
.danger-zone summary { color: var(--danger); font-weight: bold; cursor: pointer; }
.danger-zone p { margin: 12px 0; }
.admin-split { display: grid; grid-template-columns: minmax(300px,.75fr) 1.25fr; gap: 35px; align-items: start; }
.compact-list { display: grid; gap: 12px; }
.compact-list article { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.compact-list h3 { margin: 5px 0; }
.compact-list p { margin: 0; color: var(--muted); font-size: .85rem; }
.article-picker { display: grid; gap: 10px; }
.pick-card { grid-template-columns: auto 86px 1fr auto; align-items: center; gap: 14px; padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: #fff; cursor: pointer; }
.pick-card > input[type=checkbox] { width: 22px; min-height: 22px; }
.pick-card img { width: 86px; height: 64px; border-radius: 7px; object-fit: cover; }
.pick-content { display: grid; }
.pick-content small { color: var(--muted); font-weight: normal; }
.order-field { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .8rem; }
.order-field input { width: 70px; min-height: 42px; }

.journal-view { background: #d7d3cc; }
.print-toolbar { position: sticky; z-index: 30; top: 0; display: flex; justify-content: center; align-items: center; gap: 30px; padding: 12px 20px; background: #292720; color: white; box-shadow: 0 4px 18px rgba(0,0,0,.25); }
.print-toolbar > div { display: grid; line-height: 1.25; }
.print-toolbar span { color: #d3cec6; font-size: .75rem; }
.print-document { width: 210mm; margin: 28px auto; min-height: 0; }
.print-page { position: relative; width: 210mm; min-height: 297mm; padding: 18mm 18mm 17mm; background: white; color: #1e1e1c; box-shadow: 0 10px 35px rgba(0,0,0,.18); page-break-after: always; break-after: page; }
.cover-page { display: flex; flex-direction: column; border-top: 8mm solid #a94f38; padding-top: 14mm; }
.cover-kicker { color: #a94f38; font-size: 11pt; font-weight: bold; letter-spacing: .18em; text-transform: uppercase; }
.cover-title { margin-top: 7mm; line-height: .95; }
.cover-title span { display: block; font-size: 34pt; font-weight: bold; letter-spacing: -.04em; }
.cover-title strong { display: block; color: #a94f38; font-size: 54pt; letter-spacing: -.055em; }
.cover-rule { width: 35mm; height: 2px; margin: 8mm 0; background: #a94f38; }
.cover-page > h1 { margin-bottom: 1mm; font-size: 22pt; }
.cover-date { color: #5f5b55; font-size: 13pt; }
.cover-photo { margin: 8mm 0 6mm; }
.cover-photo img { width: 100%; height: 90mm; object-fit: cover; }
.cover-photo figcaption { font-size: 18pt; }
.editorial { padding: 7mm 8mm; border-left: 4px solid #a94f38; background: #f6f0e6; }
.editorial h2 { margin-bottom: 2mm; font-size: 15pt; }
.editorial p { margin: 0; font-size: 12.5pt; line-height: 1.55; }
.printed-page-number { position: absolute; right: 18mm; bottom: 8mm; color: #6b665f; font-size: 10pt; }
.print-article { font-family: Arial, Verdana, sans-serif; }
.print-article header { margin-bottom: 7mm; }
.print-meta { display: flex; justify-content: space-between; color: #5d685f; font-size: 10.5pt; font-weight: bold; letter-spacing: .05em; text-transform: uppercase; }
.print-article h1 { margin: 3mm 0 2mm; font-size: 28pt; line-height: 1.08; }
.print-byline { margin: 0; color: #5f5b55; font-size: 12pt; }
.print-hero { margin: 0 0 7mm; break-inside: avoid; }
.print-hero img { width: 100%; max-height: 105mm; object-fit: contain; background: #f3f0ea; }
.print-hero figcaption, .print-gallery figcaption { font-size: 10.5pt; }
.print-copy { font-size: 16pt; line-height: 1.6; }
.print-copy p { margin: 0 0 5mm; orphans: 3; widows: 3; }
.print-gallery { display: grid; grid-template-columns: repeat(2,1fr); gap: 6mm; margin-top: 7mm; }
.print-gallery figure { margin: 0; break-inside: avoid; }
.print-gallery img { width: 100%; height: 65mm; object-fit: contain; background: #f3f0ea; }
.print-empty { display: grid; place-items: center; text-align: center; }

@media (max-width: 760px) {
  body { font-size: 16px; }
  main { width: min(100% - 24px, 1180px); }
  .site-header { min-height: 78px; }
  .nav-toggle { display: block; }
  .site-header nav { display: none; position: absolute; z-index: 15; top: 70px; right: 16px; width: min(300px, calc(100% - 32px)); padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow); }
  .site-header nav.is-open { display: grid; gap: 4px; }
  .site-header nav a { padding: 10px 8px; }
  .login-page { grid-template-columns: 1fr; gap: 20px; padding: 38px 0; }
  .login-intro h1 { font-size: 2.45rem; }
  .auth-card { padding: 24px; }
  .home-hero, .admin-heading, .preview-toolbar { display: grid; padding: 45px 0 30px; }
  .home-hero .button, .admin-heading .button { width: 100%; }
  .article-grid, .issue-grid { grid-template-columns: 1fr; }
  .card-image-link { height: 230px; }
  .card-body { padding: 22px; }
  .article-detail { margin-top: 35px; }
  .article-detail > header { text-align: left; }
  .hero-photo { margin-bottom: 30px; }
  .article-copy { font-size: 1.08rem; line-height: 1.75; }
  .photo-gallery { grid-template-columns: 1fr; }
  .photo-gallery img { height: auto; max-height: 500px; object-fit: contain; }
  .form-page { margin: 38px auto; }
  .form-section { padding: 21px 17px; }
  .two-cols, .upload-previews, .existing-photos, .admin-photos { grid-template-columns: 1fr; }
  .sticky-submit { display: grid; bottom: 8px; }
  .sticky-submit .button { width: 100%; }
  .preview-article { padding: 22px 16px; }
  .preview-actions { display: grid; grid-template-columns: 1fr; }
  .preview-actions form, .preview-actions .button { width: 100%; }
  .stat-row { gap: 8px; }
  .stat-row div { display: grid; gap: 0; padding: 12px; }
  .admin-item { grid-template-columns: 82px 1fr; }
  .admin-item > img, .admin-thumb-empty { width: 82px; height: 82px; }
  .admin-item-actions { grid-column: 1 / -1; }
  .admin-item-actions .button { flex: 1; }
  .admin-split { grid-template-columns: 1fr; }
  .pick-card { grid-template-columns: auto 60px 1fr; }
  .pick-card img { width: 60px; height: 54px; }
  .order-field { grid-column: 2 / -1; }
  .print-toolbar { position: relative; flex-wrap: wrap; }
  .print-toolbar > div { display: none; }
  .print-document { transform-origin: top left; width: 210mm; margin: 10px 0; }
  .journal-view { overflow-x: auto; }
}

/* ─────────────────────────────────────────────
   RADIO YMARE — direction magazine
   ───────────────────────────────────────────── */
:root {
  --cream: #fbf4e7;
  --paper: #fffdf9;
  --ink: #292231;
  --muted: #6d6570;
  --terracotta: #e45f52;
  --terracotta-dark: #b93f43;
  --sage: #40766e;
  --plum: #3a294d;
  --plum-dark: #261b35;
  --sun: #f2c45f;
  --sky: #83b8c6;
  --line: #dfd3c5;
  --soft: #f0e5d7;
  --shadow: 0 18px 48px rgba(52, 35, 63, .12);
}

body:not(.journal-view) {
  background:
    radial-gradient(circle at 92% 4%, rgba(242,196,95,.23), transparent 25rem),
    radial-gradient(circle at -8% 34%, rgba(131,184,198,.18), transparent 29rem),
    var(--cream);
}

.brand-radio { position: relative; display: inline-grid; grid-template-columns: auto auto; align-items: baseline; gap: 5px; padding-right: 28px; }
.brand-radio span, .brand-radio strong { display: inline; color: var(--plum); font-size: 1.6rem; font-weight: 900; letter-spacing: -.065em; text-transform: uppercase; }
.brand-radio strong { color: var(--terracotta); }
.brand-radio i { position: absolute; right: 0; top: 4px; width: 20px; height: 20px; border: 3px solid var(--sun); border-radius: 50%; }
.brand-radio i::before, .brand-radio i::after { content: ''; position: absolute; inset: 3px; border: 1px solid var(--sun); border-radius: 50%; }
.brand-radio i::after { inset: 8px; background: var(--sun); }

.site-header { border-bottom: 2px solid rgba(58,41,77,.11); }
.site-header nav a:hover { color: var(--terracotta-dark); }
.button { border-color: var(--plum); background: var(--plum); box-shadow: 0 9px 20px rgba(58,41,77,.13); }
.button:hover { border-color: var(--plum-dark); background: var(--plum-dark); }
.button-secondary { border-color: var(--plum); color: var(--plum); background: transparent; box-shadow: none; }
.button-spark { border-color: var(--terracotta); background: var(--terracotta); box-shadow: 0 14px 28px rgba(228,95,82,.25); }
.button-spark:hover { border-color: var(--terracotta-dark); background: var(--terracotta-dark); }
.eyebrow { color: var(--terracotta-dark); }
.category { color: var(--sage); }

.campaign-card { background: radial-gradient(circle at 93% 2%, rgba(242,196,95,.35), transparent 18rem), linear-gradient(135deg,var(--plum),#4d3562 62%,#2e5060); }
.campaign-progress span { background: linear-gradient(90deg,var(--terracotta),var(--sun)); }
.live-dot { background: var(--sun); box-shadow: 0 0 0 6px rgba(242,196,95,.18); }
.news-card { border: 0; box-shadow: var(--shadow); }
.news-card:nth-child(3n+2) { transform: translateY(18px); }
.news-card:hover { transform: translateY(-5px); }
.news-card:nth-child(3n+2):hover { transform: translateY(12px); }
.card-body h2 a { background-image: linear-gradient(var(--terracotta),var(--terracotta)); background-position: 0 100%; background-repeat: no-repeat; background-size: 0 2px; transition: background-size .25s; }
.news-card:hover .card-body h2 a { background-size: 100% 2px; }
.demo-badge { background: #f8dfa6; color: #765015; }
.card-author { display: flex; align-items: center; gap: 10px; margin: 15px 0; }
.card-author > img, .card-author > span { width: 39px; height: 39px; flex: 0 0 39px; border-radius: 50%; object-fit: cover; }
.card-author > span { display: grid; place-items: center; background: var(--plum); color: white; font-size: .72rem; font-weight: bold; }
.card-author p { display: grid; margin: 0; line-height: 1.25; }
.card-author strong { font-size: .82rem; }
.card-author small { color: var(--muted); font-size: .7rem; }

.site-footer { display: grid; gap: 2px; }
.site-footer strong { color: var(--plum); letter-spacing: -.03em; text-transform: uppercase; }
.site-footer span { font-size: .82rem; }

/* Signature et portrait */
.author-signature { display: flex; align-items: center; justify-content: center; gap: 13px; margin-top: 22px; }
.author-signature > img, .author-signature > .author-initials { width: 58px; height: 58px; flex: 0 0 58px; border-radius: 50%; object-fit: cover; border: 4px solid white; box-shadow: 0 5px 16px rgba(51,35,63,.18); }
.author-initials { display: grid; place-items: center; background: var(--plum); color: white; font-size: .85rem; font-weight: 900; }
.author-signature p { display: grid; margin: 0; text-align: left; line-height: 1.22; }
.author-signature p span, .author-signature p small { color: var(--muted); font-size: .73rem; }
.author-signature p strong { font-size: 1rem; }

.avatar-upload-block { display: grid; grid-template-columns: 1fr auto; gap: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: linear-gradient(135deg,#fff,#f5ecdf); }
.avatar-upload-copy p { margin: 3px 0 0; color: var(--muted); font-size: .84rem; }
.avatar-upload { grid-column: 1 / -1; display: flex; align-items: center; gap: 13px; padding: 14px; border: 1px dashed #ad9aaa; border-radius: 13px; background: white; cursor: pointer; }
.avatar-upload input { width: 100%; min-height: 0; padding: 5px 0; border: 0; background: transparent; font-size: .82rem; }
.avatar-upload > span:nth-child(2) { display: grid; flex: 1; }
.avatar-camera { display: grid; place-items: center; width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; background: var(--plum); color: white; font-size: 1.6rem; }
.avatar-preview-current { width: 74px; height: 74px; border-radius: 50%; object-fit: cover; border: 4px solid white; box-shadow: 0 6px 18px rgba(52,35,63,.18); }
#avatar-preview { grid-column: 1 / -1; }
.admin-avatar-row { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 22px; }
.admin-avatar-row > img, .admin-avatar-row > .author-initials { width: 92px; height: 92px; border-radius: 50%; object-fit: cover; }

/* Galerie magazine web */
.editorial-photo-layout { display: grid; gap: 16px; margin: 0 0 42px; }
.editorial-photo-layout figure { position: relative; min-width: 0; margin: 0; }
.editorial-photo-layout img { width: 100%; height: 100%; min-height: 270px; max-height: 650px; border-radius: 16px; object-fit: cover; background: var(--soft); }
.editorial-photo-layout figcaption { margin: 8px 3px 0; font-size: .92rem; }
.editorial-photo-layout.photos-1 { grid-template-columns: 1fr; }
.editorial-photo-layout.photos-1 img { height: auto; max-height: 680px; object-fit: contain; }
.editorial-photo-layout.photos-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.editorial-photo-layout.photos-2 img { height: 440px; }
.editorial-photo-layout.photos-3, .editorial-photo-layout.photos-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.editorial-photo-layout.photos-3 figure:first-child { grid-column: span 2; }
.editorial-photo-layout.photos-3 figure:first-child img { height: 480px; }
.editorial-photo-layout.photos-3 figure:not(:first-child) img, .editorial-photo-layout.photos-4 img { height: 320px; }

/* Studio d’édition automatique */
.area-admin { --terracotta: #5e456f; --terracotta-dark: #3a294d; --cream: #f3eff5; --soft: #e9e0ee; }
.auto-issue-card { position: relative; overflow: hidden; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; margin-bottom: 58px; padding: 32px; border-radius: 24px; background: linear-gradient(135deg,var(--plum),#573a68 70%,#326d71); color: white; box-shadow: 0 24px 52px rgba(45,31,58,.22); }
.auto-issue-card::after { content: ''; position: absolute; right: -65px; top: -90px; width: 260px; height: 260px; border: 45px solid rgba(242,196,95,.11); border-radius: 50%; }
.auto-issue-card > * { position: relative; z-index: 1; }
.auto-issue-card h2 { margin: 9px 0; font-size: clamp(1.7rem,3vw,2.5rem); }
.auto-issue-card p { max-width: 680px; margin: 0; color: #e8e1eb; }
.auto-issue-orbit { display: grid; place-items: center; width: 86px; height: 86px; border: 2px solid rgba(255,255,255,.35); border-radius: 50%; box-shadow: 0 0 0 11px rgba(255,255,255,.06); }
.auto-issue-orbit span { color: var(--sun); font-size: 2rem; font-weight: 900; }
.issue-admin-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.issue-admin-card { display: grid; grid-template-columns: 142px 1fr; gap: 20px; padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: var(--paper); box-shadow: 0 10px 30px rgba(49,34,60,.08); }
.issue-cover-mini { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 178px; padding: 16px; border-radius: 11px; background: linear-gradient(155deg,var(--plum) 0 58%,var(--terracotta) 58%); color: white; }
.issue-cover-mini span, .issue-cover-mini strong { font-size: 1.4rem; line-height: .85; letter-spacing: -.06em; }
.issue-cover-mini b { position: absolute; right: 12px; bottom: 10px; color: var(--sun); font-size: 1.15rem; }
.issue-admin-content { align-self: center; }
.issue-admin-content h3 { margin: 7px 0; }
.issue-admin-content p { color: var(--muted); font-size: .85rem; }
.issue-studio { max-width: 1040px; margin: 55px auto; }
.studio-header { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 25px; }
.studio-header h1 { margin-bottom: 6px; }
.studio-header p { color: var(--muted); }
.studio-actions { display: flex; gap: 10px; }
.studio-actions form { margin: 0; }
.studio-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 25px; }
.studio-stats div { display: grid; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
.studio-stats strong { color: var(--plum); font-size: 1.4rem; }
.studio-stats span { color: var(--muted); font-size: .76rem; }
.simple-picker .pick-card { grid-template-columns: auto 82px 1fr auto; }
.simple-picker .pick-card.picked { border-color: #8b72a0; background: #faf5ff; box-shadow: inset 4px 0 var(--plum); }
.auto-order { padding: 5px 9px; border-radius: 99px; background: var(--soft); color: var(--plum); font-size: .72rem; font-weight: bold; }
.publication-panel { grid-template-columns: minmax(240px,.7fr) 1fr; align-items: end; }
.publication-panel p { color: var(--muted); }

/* Aperçu et impression Radio Ymare */
.radio-magazine { background: #d8d2dc; }
.radio-magazine .print-toolbar { background: var(--plum-dark); }
.radio-magazine .print-toolbar .button-secondary { border-color: rgba(255,255,255,.7); color: white; }
.radio-cover { overflow: hidden; border-top: 0; padding: 13mm 15mm 15mm; background: #fffaf0; }
.radio-cover::before { content: ''; position: absolute; right: -38mm; top: -44mm; width: 102mm; height: 102mm; border: 20mm solid rgba(228,95,82,.10); border-radius: 50%; }
.cover-masthead { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: start; border-bottom: 3px solid var(--plum); padding-bottom: 5mm; }
.cover-logo { display: flex; gap: 3mm; align-items: baseline; color: var(--plum); font-weight: 900; letter-spacing: -.075em; }
.cover-logo span, .cover-logo strong { font-size: 40pt; line-height: .8; }
.cover-logo strong { color: var(--terracotta); }
.cover-number { display: grid; justify-items: end; line-height: 1; }
.cover-number span { color: #665c69; font-size: 9pt; font-weight: bold; letter-spacing: .16em; }
.cover-number strong { color: var(--plum); font-size: 26pt; }
.cover-tagline { margin: 4mm 0 7mm; color: #5c5360; font-size: 11pt; font-weight: bold; letter-spacing: .05em; text-transform: uppercase; }
.radio-cover .cover-photo { position: relative; z-index: 1; margin: 0; }
.radio-cover .cover-photo img { width: 100%; height: 115mm; border-radius: 1mm; object-fit: cover; }
.radio-cover .cover-photo figcaption { font-size: 18pt; }
.cover-bottom-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 8mm; margin-top: 7mm; }
.cover-bottom-grid h1 { margin: 2mm 0; font-size: 25pt; line-height: 1.02; }
.cover-edition-label { margin: 0; color: var(--terracotta-dark); font-size: 10pt; font-weight: bold; letter-spacing: .09em; text-transform: uppercase; }
.cover-date { color: #685e6b; font-size: 11pt; }
.radio-cover .editorial, .cover-sommaire { padding: 5mm; border: 0; border-radius: 2mm; background: var(--plum); color: white; }
.radio-cover .editorial span, .cover-sommaire > span { color: var(--sun); font-size: 8pt; font-weight: bold; letter-spacing: .12em; }
.radio-cover .editorial p { margin-top: 2mm; color: white; font-size: 11pt; }
.cover-sommaire p { display: grid; grid-template-columns: 6mm 1fr; gap: 2mm; margin: 2.5mm 0; font-size: 9pt; line-height: 1.2; }
.cover-sommaire b { color: var(--sun); }

.radio-article { padding: 15mm 16mm 16mm; border-top: 7mm solid var(--plum); }
.radio-article::before { content: ''; position: absolute; top: 0; right: 0; width: 54mm; height: 7mm; background: var(--terracotta); }
.radio-article .print-meta span { color: var(--terracotta-dark); }
.radio-article h1 { max-width: 165mm; margin: 4mm 0 3mm; color: var(--plum-dark); font-size: 29pt; }
.print-author { display: flex; align-items: center; gap: 3mm; margin-bottom: 7mm; }
.print-author > img, .print-author > span { width: 18mm; height: 18mm; flex: 0 0 18mm; border-radius: 50%; object-fit: cover; }
.print-author > span { display: grid; place-items: center; background: var(--plum); color: white; font-size: 11pt; font-weight: bold; }
.print-author p { display: grid; margin: 0; line-height: 1.15; }
.print-author small { color: #706774; font-size: 9pt; font-style: normal; }
.print-author strong { font-size: 13pt; }
.print-author em { color: #706774; font-size: 9pt; font-style: normal; }
.print-photo-layout { display: grid; gap: 5mm; margin-bottom: 7mm; break-inside: avoid; }
.print-photo-layout figure { min-width: 0; margin: 0; break-inside: avoid; }
.print-photo-layout img { width: 100%; object-fit: cover; background: #eee8df; }
.print-photo-layout figcaption { margin-top: 2mm; color: #342d37; font-size: 18pt; line-height: 1.3; }
.print-photo-layout.photos-1 { grid-template-columns: 1fr; }
.print-photo-layout.photos-1 img { max-height: 108mm; object-fit: contain; }
.print-photo-layout.photos-2 { grid-template-columns: repeat(2,1fr); }
.print-photo-layout.photos-2 img { height: 82mm; }
.print-photo-layout.photos-3, .print-photo-layout.photos-4 { grid-template-columns: repeat(2,1fr); }
.print-photo-layout.photos-3 figure:first-child { grid-column: span 2; }
.print-photo-layout.photos-3 figure:first-child img { height: 76mm; }
.print-photo-layout.photos-3 figure:not(:first-child) img { height: 54mm; }
.print-photo-layout.photos-4 img { height: 44mm; }
.radio-article .print-copy { color: #29242c; font-size: 18pt; line-height: 1.6; }
.radio-article .print-copy p:first-child::first-letter { float: left; margin: 1mm 2mm 0 0; color: var(--terracotta); font-size: 48pt; font-weight: 900; line-height: .75; }
.article-endmark { display: flex; align-items: center; gap: 3mm; margin: 8mm auto 0; color: var(--terracotta); }
.article-endmark span { width: 18mm; height: 1px; background: #c9becb; }
.article-endmark b { font-size: 10pt; }
.radio-magazine .printed-page-number { color: var(--plum); font-weight: bold; letter-spacing: .07em; }

@media screen {
  .radio-magazine .print-document { width: min(210mm, calc(100vw - 24px)); }
  .radio-magazine .print-page { width: 100%; min-height: auto; aspect-ratio: 210 / 297; height: auto; margin-bottom: 20px; }
}

@media (max-width: 760px) {
  .brand-radio span, .brand-radio strong { font-size: 1.28rem; }
  .brand-radio i { top: 1px; }
  .news-card:nth-child(3n+2) { transform: none; }
  .author-signature { justify-content: flex-start; }
  .editorial-photo-layout.photos-2 { gap: 9px; }
  .editorial-photo-layout.photos-2 img { height: 240px; }
  .editorial-photo-layout.photos-3 figure:first-child img { height: 300px; }
  .editorial-photo-layout.photos-3 figure:not(:first-child) img, .editorial-photo-layout.photos-4 img { height: 190px; }
  .avatar-upload-block { grid-template-columns: 1fr; }
  .avatar-upload-block .avatar-preview-current { grid-row: 2; }
  .auto-issue-card { grid-template-columns: 1fr; padding: 25px; }
  .auto-issue-orbit { width: 65px; height: 65px; }
  .auto-issue-card .button { width: 100%; }
  .issue-admin-grid { grid-template-columns: 1fr; }
  .issue-admin-card { grid-template-columns: 105px 1fr; }
  .issue-cover-mini { min-height: 145px; }
  .studio-header { display: grid; align-items: start; }
  .studio-actions { display: grid; grid-template-columns: 1fr; }
  .studio-actions .button, .studio-actions form { width: 100%; }
  .studio-stats { grid-template-columns: repeat(3,1fr); }
  .studio-stats div { padding: 12px 9px; }
  .studio-stats strong { font-size: 1rem; }
  .simple-picker .pick-card { grid-template-columns: auto 58px 1fr; }
  .auto-order { grid-column: 3; width: fit-content; }
  .publication-panel { grid-template-columns: 1fr; }
  .radio-magazine .print-toolbar { gap: 8px; padding: 10px; }
  .radio-magazine .print-toolbar .button { min-height: 42px; padding: 8px 12px; font-size: .75rem; }
  .sticky-submit { position: static; margin-top: 4px; }
}

@media print {
  .radio-magazine .print-document { width: auto; }
  .radio-magazine .print-page { width: 210mm; min-height: 297mm; aspect-ratio: auto; margin: 0; }
  .radio-article .print-copy, .print-photo-layout figcaption { font-size: 18pt !important; }
}

@page { size: A4; margin: 0; }
@media print {
  body.journal-view { background: white; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .no-print { display: none !important; }
  .print-document { width: auto; margin: 0; }
  .print-page { width: 210mm; min-height: 297mm; margin: 0; box-shadow: none; }
  .print-page:last-child { page-break-after: auto; }
}

/* Expérience éditoriale enrichie */
body:not(.journal-view) {
  overflow-x: hidden;
  background:
    radial-gradient(circle at 90% 2%, rgba(226, 170, 95, .16), transparent 27rem),
    radial-gradient(circle at -10% 35%, rgba(88, 112, 93, .10), transparent 30rem),
    var(--cream);
}

.site-header {
  position: relative;
  z-index: 12;
}

.button { min-width: 0; white-space: normal; text-align: center; }
.button-spark { box-shadow: 0 12px 30px rgba(169, 79, 56, .22); }
.button-spark > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(255,255,255,.18); font-size: 1.25rem; }

.home-hero { align-items: center; padding: clamp(48px, 8vw, 90px) 0 42px; }
.home-hero > div { max-width: 750px; min-width: 0; }
.home-hero h1 { max-width: 720px; margin-bottom: 16px; font-size: clamp(2.45rem, 5.4vw, 4.8rem); }
.home-hero p:last-child { max-width: 600px; font-size: 1.08rem; }

.campaign-card {
  position: relative;
  overflow: hidden;
  margin-bottom: 62px;
  padding: clamp(24px, 4.5vw, 48px);
  border-radius: 30px;
  background:
    radial-gradient(circle at 95% 0, rgba(235, 185, 104, .30), transparent 17rem),
    linear-gradient(135deg, #425c4b, #2f493b 66%, #293e34);
  color: #fffdf8;
  box-shadow: 0 24px 55px rgba(45, 62, 51, .22);
}
.campaign-card::after { content: ''; position: absolute; right: -70px; bottom: -100px; width: 260px; height: 260px; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 42px rgba(255,255,255,.035), 0 0 0 84px rgba(255,255,255,.025); pointer-events: none; }
.campaign-topline { position: relative; z-index: 1; display: flex; align-items: center; gap: 10px; color: #e9dfd2; font-size: .79rem; letter-spacing: .07em; text-transform: uppercase; }
.campaign-topline strong { color: white; }
.campaign-topline > span:last-child { margin-left: auto; }
.live-dot { width: 9px; height: 9px; border-radius: 50%; background: #f2bd64; box-shadow: 0 0 0 6px rgba(242,189,100,.15); }
.campaign-layout { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 40px; margin: 34px 0 30px; }
.campaign-layout h2 { max-width: 650px; margin-bottom: 12px; font-size: clamp(1.8rem, 4vw, 3.1rem); letter-spacing: -.035em; }
.campaign-layout p { margin: 0; color: #e9e4dc; }
.print-date-card { min-width: 215px; padding: 17px 20px; border: 1px solid rgba(255,255,255,.17); border-radius: 16px; background: rgba(255,255,255,.08); backdrop-filter: blur(8px); }
.print-date-card span, .print-date-card strong { display: block; }
.print-date-card span { color: #d9d4cc; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.print-date-card strong { margin-top: 3px; font-size: 1.1rem; }
.campaign-progress { position: relative; z-index: 1; height: 7px; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.14); }
.campaign-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #e5a44f, #ffd58d); }
.campaign-footer { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 20px; margin-top: 15px; color: #d8d2ca; font-size: .88rem; }
.campaign-footer a { color: #fff; font-weight: bold; text-underline-offset: 4px; }

.section-title { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin: 0 0 24px; }
.section-title h2 { margin: 0; font-size: clamp(1.6rem, 3vw, 2.35rem); }
.section-title > span { color: var(--muted); font-size: .86rem; }
.article-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.news-card { transition: transform .22s ease, box-shadow .22s ease; }
.news-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(75,57,38,.12); }
.news-card-featured { grid-column: span 2; }
.news-card-featured .card-image-link { height: 390px; }
.card-labels { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.demo-badge { display: inline-flex; width: fit-content; padding: 3px 8px; border-radius: 999px; background: #f1e6d0; color: #765727; font-size: .67rem; font-weight: bold; letter-spacing: .06em; text-transform: uppercase; }

.mobile-tabbar { display: none; }

.onboarding { max-width: 820px; min-height: calc(100vh - 190px); margin: 0 auto; padding: 44px 0 60px; text-align: center; }
.onboarding-progress { display: flex; justify-content: center; gap: 8px; margin-bottom: 28px; }
.onboarding-progress span { width: 26px; height: 5px; border-radius: 99px; background: var(--line); transition: .25s ease; }
.onboarding-progress span.active { width: 44px; background: var(--terracotta); }
.onboarding-slide { animation: onboarding-in .32s ease both; }
.onboarding-slide h1 { max-width: 760px; margin: 12px auto 18px; font-size: clamp(2rem, 5vw, 3.6rem); }
.onboarding-slide > p:last-child { max-width: 650px; margin: 0 auto; color: var(--muted); font-size: 1.05rem; }
.onboarding-visual { position: relative; width: min(360px, 78vw); height: 245px; margin: 0 auto 30px; border: 1px solid rgba(169,79,56,.12); border-radius: 42% 58% 48% 52% / 50% 40% 60% 50%; background: linear-gradient(145deg, #efe1ce, #f9f5ed); }
.mini-card { position: absolute; width: 150px; height: 176px; border: 8px solid white; border-radius: 13px; background: linear-gradient(145deg, #cf946b, #7c9a82); box-shadow: 0 16px 30px rgba(72,55,37,.14); }
.card-a { left: 50px; top: 36px; transform: rotate(-9deg); }
.card-b { right: 50px; top: 24px; transform: rotate(8deg); background: linear-gradient(145deg, #e9bd6b, #b45a3c); }
.mini-heart { position: absolute; left: calc(50% - 27px); bottom: 13px; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--terracotta); color: white; box-shadow: 0 10px 22px rgba(169,79,56,.25); }
.visual-note { border-radius: 38% 62% 55% 45% / 48% 45% 55% 52%; }
.visual-note::before { content: ''; position: absolute; inset: 25px 65px; border-radius: 16px; background: white; box-shadow: 0 18px 36px rgba(72,55,37,.13); transform: rotate(-3deg); }
.note-line, .note-photo, .note-plus { position: absolute; z-index: 1; }
.note-line { left: 102px; height: 8px; border-radius: 99px; background: #d8d1c5; transform: rotate(-3deg); }
.line-a { top: 67px; width: 115px; }.line-b { top: 91px; width: 85px; }
.note-photo { left: 100px; top: 119px; width: 150px; height: 68px; border-radius: 8px; background: linear-gradient(145deg,#709077,#e6ae60); transform: rotate(-3deg); }
.note-plus { right: 55px; bottom: 22px; display: grid; place-items: center; width: 54px; height: 54px; border-radius: 50%; background: var(--terracotta); color: white; font-size: 1.8rem; }
.visual-paper { border-radius: 50%; }
.paper-sheet { position: absolute; width: 145px; height: 190px; border-radius: 5px; background: white; box-shadow: 0 16px 32px rgba(72,55,37,.15); }
.sheet-back { left: 78px; top: 31px; transform: rotate(-10deg); background: #dcc8ad; }
.sheet-front { right: 76px; top: 26px; transform: rotate(7deg); padding: 18px; }
.sheet-front i { display: block; height: 8px; margin-bottom: 8px; border-radius: 3px; background: #c1b8aa; }
.sheet-front i:first-child { width: 70%; height: 12px; background: var(--terracotta); }
.sheet-front b { display: block; height: 82px; margin-top: 15px; border-radius: 5px; background: linear-gradient(145deg,#dab16f,#668471); }
.onboarding-actions { display: flex; justify-content: center; gap: 14px; margin-top: 34px; }
.onboarding-finish { margin: 0; }
.onboarding-skip { margin-top: 20px; }
.onboarding-skip button { padding: 5px; border: 0; background: transparent; color: var(--muted); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
@keyframes onboarding-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.admin-quick-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-bottom: 28px; }
.admin-quick-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); text-decoration: none; }
.admin-quick-card .quick-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--soft); color: var(--terracotta-dark); font-size: 1.25rem; }
.admin-quick-card > span:nth-child(2) { display: grid; }
.admin-quick-card small { color: var(--muted); font-weight: normal; }
.admin-quick-card b { color: var(--terracotta-dark); font-size: .82rem; }
.admin-quick-card form { margin: 0; }
.admin-quick-card form button { border: 0; background: transparent; color: var(--terracotta-dark); font-weight: bold; cursor: pointer; }
.three-cols { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; }
.switch-row { display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.switch-row > span { display: grid; }
.switch-row input { position: relative; width: 58px; min-width: 58px; height: 32px; min-height: 32px; appearance: none; border: 0; border-radius: 99px; background: #c9c6c0; cursor: pointer; transition: .2s; }
.switch-row input::after { content: ''; position: absolute; top: 4px; left: 4px; width: 24px; height: 24px; border-radius: 50%; background: white; box-shadow: 0 2px 5px rgba(0,0,0,.18); transition: .2s; }
.switch-row input:checked { background: var(--terracotta); }
.switch-row input:checked::after { transform: translateX(26px); }
.campaign-admin-preview { padding: 24px; border-radius: 16px; background: linear-gradient(135deg,#3f5c49,#2f4739); color: white; }
.campaign-admin-preview span { display: block; color: #d5ded7; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; }
.campaign-admin-preview strong { display: block; margin: 5px 0; font-size: 1.35rem; }
.campaign-admin-preview p { margin: 0; color: #d5ded7; font-size: .9rem; }

@media (max-width: 980px) {
  .article-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .news-card-featured { grid-column: span 2; }
  .admin-quick-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  body:not(.journal-view) { padding-bottom: 82px; }
  h1, h2, h3, p, a, span { overflow-wrap: anywhere; }
  .site-header { position: sticky; top: 0; width: 100%; min-height: 68px; padding: 0 16px; border-bottom-color: rgba(217,208,194,.72); background: rgba(246,240,230,.88); backdrop-filter: blur(14px); }
  .brand span { font-size: .62rem; }.brand strong { font-size: 1.16rem; }
  .nav-toggle { font-size: .8rem; }
  .home-hero { gap: 24px; padding: 36px 0 28px; }
  .home-hero h1 { font-size: clamp(2.15rem, 11vw, 3rem); }
  .home-hero .button { min-height: 58px; }
  .campaign-card { margin-bottom: 44px; border-radius: 22px; }
  .campaign-topline { flex-wrap: wrap; }.campaign-topline > span:last-child { width: 100%; margin: 4px 0 0 19px; }
  .campaign-layout { grid-template-columns: 1fr; gap: 20px; margin: 25px 0; }
  .campaign-layout h2 { font-size: 1.8rem; }
  .print-date-card { min-width: 0; }
  .campaign-footer { display: grid; }
  .section-title { align-items: center; }
  .article-grid { grid-template-columns: minmax(0,1fr); }
  .news-card-featured { grid-column: auto; }
  .news-card-featured .card-image-link { height: 245px; }
  .news-card { border-radius: 16px; }
  .mobile-tabbar { position: fixed; z-index: 25; left: 10px; right: 10px; bottom: 8px; display: grid; grid-template-columns: 1fr 1.15fr 1fr; align-items: end; min-height: 67px; padding: 6px 8px; border: 1px solid rgba(217,208,194,.85); border-radius: 20px; background: rgba(255,253,248,.94); box-shadow: 0 15px 45px rgba(60,45,30,.22); backdrop-filter: blur(18px); }
  .mobile-tabbar a { display: grid; justify-items: center; gap: 1px; color: var(--muted); font-size: .69rem; font-weight: bold; text-decoration: none; }
  .mobile-tabbar a > span { font-size: 1.25rem; line-height: 1; }
  .mobile-tabbar .mobile-create { position: relative; top: -8px; color: var(--terracotta-dark); }
  .mobile-tabbar .mobile-create > span { display: grid; place-items: center; width: 45px; height: 45px; margin-bottom: 2px; border-radius: 50%; background: var(--terracotta); color: white; box-shadow: 0 8px 18px rgba(169,79,56,.28); font-size: 1.7rem; }
  .site-footer { margin-top: 45px; padding-bottom: 18px; }
  .onboarding { min-height: auto; padding-top: 24px; }
  .onboarding-visual { height: 215px; margin-bottom: 24px; }
  .onboarding-slide h1 { font-size: 2rem; }
  .onboarding-actions { display: grid; grid-template-columns: 1fr; }
  .onboarding-actions .button, .onboarding-actions form { width: 100%; }
  .onboarding-actions .onboarding-back { order: 2; }
  .mini-card { width: 125px; height: 150px; }.card-a { left: 42px; }.card-b { right: 42px; }
  .three-cols { grid-template-columns: 1fr; }
  .admin-quick-card { grid-template-columns: auto 1fr; }
  .admin-quick-card > b, .admin-quick-card > form { grid-column: 2; }
}

/* Couche finale : la gazette papier garde la priorité sur l’ancien thème. */
:root {
  --cream: #e8e1d2;
  --paper: #f8f3e7;
  --ink: #1c1b18;
  --muted: #655f55;
  --terracotta: #a9372e;
  --terracotta-dark: #7e241e;
  --sage: #315467;
  --line: #8d8679;
  --soft: #ded5c4;
  --plum: #1c1b18;
  --plum-dark: #11110f;
  --sun: #d49a34;
  --sky: #315467;
  --danger: #972d26;
  --shadow: 5px 6px 0 rgba(28,27,24,.22);
  --radius: 1px;
}
.area-admin { --terracotta: #a9372e; --terracotta-dark: #7e241e; --cream: #e8e1d2; --soft: #ded5c4; }
body:not(.journal-view) {
  color: var(--ink);
  background-color: var(--cream);
  background-image:
    repeating-linear-gradient(0deg, rgba(53,48,40,.025) 0, rgba(53,48,40,.025) 1px, transparent 1px, transparent 5px),
    radial-gradient(circle at 15% 8%, rgba(255,255,255,.5), transparent 32rem),
    radial-gradient(circle at 88% 58%, rgba(115,98,70,.08), transparent 28rem);
}
body:not(.journal-view) h1,
body:not(.journal-view) h2,
body:not(.journal-view) h3 { color: var(--ink); font-family: Georgia,"Times New Roman",serif; }

body:not(.journal-view) .site-header {
  width: min(1240px,calc(100% - 36px));
  min-height: 112px;
  margin: 14px auto 0;
  padding: 10px 0;
  border-top: 5px double var(--ink);
  border-bottom: 5px double var(--ink);
  background: transparent;
}
body:not(.journal-view) .brand-radio {
  position: relative;
  display: grid;
  grid-template-columns: auto auto;
  align-items: end;
  gap: 0 7px;
  color: var(--ink);
  transform: none;
}
body:not(.journal-view) .brand-radio small { grid-column: 1/-1; color: var(--terracotta-dark); font: 700 .57rem/1 Arial,sans-serif; letter-spacing: .14em; text-transform: uppercase; }
body:not(.journal-view) .brand-radio span,
body:not(.journal-view) .brand-radio strong { display: inline; color: var(--ink); font: 900 2rem/.92 Georgia,serif; letter-spacing: -.075em; text-transform: none; }
body:not(.journal-view) .brand-radio strong { color: var(--terracotta-dark); }
body:not(.journal-view) .brand-radio i { position: absolute; right: -30px; top: 15px; width: auto; height: auto; border: 0; color: var(--ink); font: italic 1.25rem Georgia,serif; transform: rotate(-17deg); }
body:not(.journal-view) .site-header nav a { padding: 6px 0 4px; border-bottom: 2px solid transparent; color: var(--ink); font-size: .78rem; letter-spacing: .055em; text-transform: uppercase; }
body:not(.journal-view) .site-header nav a:hover { border-bottom-color: var(--terracotta); color: var(--terracotta-dark); }
body:not(.journal-view) .nav-toggle { border: 2px solid var(--ink); border-radius: 0; background: var(--paper); box-shadow: 2px 2px 0 var(--ink); }

body:not(.journal-view) .button { border: 2px solid var(--ink); border-radius: 1px; background: var(--terracotta); color: #fffdf5; box-shadow: 3px 3px 0 var(--ink); }
body:not(.journal-view) .button:hover { border-color: var(--ink); background: var(--terracotta-dark); box-shadow: 1px 1px 0 var(--ink); transform: translate(2px,2px); }
body:not(.journal-view) .button-secondary { background: var(--paper); color: var(--ink); }
body:not(.journal-view) .button-secondary:hover { background: var(--ink); color: var(--paper); }
body:not(.journal-view) .button-spark { box-shadow: 4px 4px 0 var(--ink); transform: rotate(-.7deg); }

body:not(.journal-view) .home-hero { position: relative; align-items: center; padding: clamp(48px,7vw,78px) 0 45px; border-bottom: 1px solid var(--ink); }
body:not(.journal-view) .home-hero::before { content: "〰 ✎"; position: absolute; right: 7%; bottom: 6px; color: var(--terracotta); font: italic 1.25rem Georgia,serif; letter-spacing: .28em; transform: rotate(-6deg); }
body:not(.journal-view) .home-hero h1 { max-width: 790px; margin-bottom: 16px; font-size: clamp(2.65rem,5.7vw,5rem); line-height: .98; letter-spacing: -.055em; }
body:not(.journal-view) .home-hero p:last-child { color: #4f4b43; }

body:not(.journal-view) .auth-card,
body:not(.journal-view) .form-section,
body:not(.journal-view) .preview-article,
body:not(.journal-view) .issue-card,
body:not(.journal-view) .admin-item,
body:not(.journal-view) .auto-issue-card,
body:not(.journal-view) .issue-admin-card,
body:not(.journal-view) .admin-quick-card { border: 2px solid var(--ink); border-radius: 1px; background-color: var(--paper); background-image: repeating-linear-gradient(0deg,transparent 0,transparent 24px,rgba(35,32,27,.028) 25px); box-shadow: var(--shadow); }

body:not(.journal-view) input,
body:not(.journal-view) select { border: 0; border-bottom: 2px solid var(--ink); border-radius: 0; background: rgba(255,255,255,.52); }
body:not(.journal-view) textarea { border: 2px solid var(--ink); border-radius: 0; background: rgba(255,255,255,.58); }
body:not(.journal-view) input:focus,
body:not(.journal-view) textarea:focus,
body:not(.journal-view) select:focus { border-color: var(--terracotta-dark); outline: 3px dashed rgba(169,55,46,.28); outline-offset: 2px; }

body:not(.journal-view) .campaign-card { overflow: visible; margin: 45px 0 68px; padding: clamp(28px,4.5vw,48px); border: 5px double var(--ink); border-radius: 0; background: var(--paper); color: var(--ink); box-shadow: 7px 8px 0 rgba(28,27,24,.28); }
body:not(.journal-view) .campaign-card::after { content: "BOUCLAGE"; position: absolute; right: 28px; bottom: -24px; display: grid; place-items: center; width: 104px; height: 104px; border: 4px double var(--terracotta); border-radius: 50%; background: rgba(248,243,231,.94); color: var(--terracotta-dark); font: 900 .72rem Arial,sans-serif; letter-spacing: .1em; transform: rotate(-11deg); box-shadow: none; }
body:not(.journal-view) .campaign-topline,
body:not(.journal-view) .campaign-topline strong,
body:not(.journal-view) .campaign-layout p,
body:not(.journal-view) .campaign-footer { color: var(--ink); }
body:not(.journal-view) .campaign-topline { padding-bottom: 10px; border-bottom: 1px solid var(--ink); }
body:not(.journal-view) .live-dot { border-radius: 0; background: var(--terracotta); box-shadow: none; transform: rotate(45deg); }
body:not(.journal-view) .campaign-layout h2 { font-family: Georgia,serif; line-height: 1.02; }
body:not(.journal-view) .print-date-card { border: 2px solid var(--ink); border-radius: 0; background: #efe7d5; color: var(--ink); backdrop-filter: none; transform: rotate(1deg); }
body:not(.journal-view) .print-date-card span { color: var(--terracotta-dark); font-weight: 800; }
body:not(.journal-view) .campaign-progress { height: 9px; border: 1px solid var(--ink); border-radius: 0; background: #ded4c1; }
body:not(.journal-view) .campaign-progress span { border-radius: 0; background: repeating-linear-gradient(-45deg,var(--terracotta) 0,var(--terracotta) 6px,#d86557 6px,#d86557 11px); }
body:not(.journal-view) .campaign-footer a { color: var(--terracotta-dark); }

body:not(.journal-view) .section-title { padding-bottom: 12px; border-bottom: 4px double var(--ink); }
body:not(.journal-view) .article-grid { gap: 28px; }
body:not(.journal-view) .news-card { position: relative; overflow: visible; border: 1.5px solid var(--ink); border-radius: 0; background: var(--paper); box-shadow: 4px 5px 0 rgba(28,27,24,.18); transform: rotate(-.28deg); }
body:not(.journal-view) .news-card:nth-child(3n+2) { transform: rotate(.32deg); }
body:not(.journal-view) .news-card:hover { box-shadow: 2px 3px 0 rgba(28,27,24,.3); transform: translate(2px,2px) rotate(0); }
body:not(.journal-view) .news-card-featured::before { content: "À LA UNE"; position: absolute; z-index: 3; left: 18px; top: -14px; padding: 4px 10px; border: 2px solid var(--ink); background: var(--terracotta); color: white; font-size: .67rem; font-weight: 900; letter-spacing: .1em; transform: rotate(-2deg); }
body:not(.journal-view) .card-image-link { border-bottom: 2px solid var(--ink); }
body:not(.journal-view) .card-image-link img { filter: saturate(.86) contrast(1.03); }
body:not(.journal-view) .card-body h2 { font-family: Georgia,serif; font-size: 1.75rem; line-height: 1.05; }
body:not(.journal-view) .demo-badge { border: 1px dashed var(--ink); border-radius: 0; background: transparent; color: var(--ink); }
body:not(.journal-view) .card-author { padding: 10px 0; border-top: 1px solid #958d80; border-bottom: 1px solid #958d80; }
body:not(.journal-view) .card-author > img,
body:not(.journal-view) .card-author > span { border: 2px solid var(--ink); }
body:not(.journal-view) .read-more { color: var(--ink); font-family: Georgia,serif; font-style: italic; }

body:not(.journal-view) .form-heading,
body:not(.journal-view) .page-heading,
body:not(.journal-view) .admin-heading,
body:not(.journal-view) .studio-header { position: relative; padding-bottom: 24px; border-bottom: 5px double var(--ink); }
body:not(.journal-view) .form-heading::after,
body:not(.journal-view) .page-heading::after { content: "✎  écrit comme ça vient"; position: absolute; right: 8px; bottom: 4px; color: var(--terracotta-dark); font: italic .8rem Georgia,serif; transform: rotate(-2deg); }
body:not(.journal-view) .story-form { counter-reset: radio-sheet; }
body:not(.journal-view) .form-section { position: relative; counter-increment: radio-sheet; }
body:not(.journal-view) .form-section::before { content: "FEUILLET " counter(radio-sheet); position: absolute; right: 18px; top: 16px; color: var(--terracotta-dark); font-size: .61rem; font-weight: 900; letter-spacing: .12em; transform: rotate(2deg); }
body:not(.journal-view) .form-section h2 { padding-right: 90px; }
body:not(.journal-view) .avatar-upload-block,
body:not(.journal-view) .avatar-upload,
body:not(.journal-view) .upload-zone { border-color: var(--ink); border-radius: 0; background: rgba(239,231,213,.72); }
body:not(.journal-view) .avatar-camera { border: 2px solid var(--ink); background: transparent; color: var(--ink); }
body:not(.journal-view) .photo-field { border: 1.5px solid var(--ink); border-radius: 0; background: var(--paper); }
body:not(.journal-view) .photo-field img { border-radius: 0; }
body:not(.journal-view) .sticky-submit { border: 2px solid var(--ink); border-radius: 0; background: rgba(248,243,231,.97); box-shadow: 4px 4px 0 var(--ink); }

body:not(.journal-view) .article-detail > header { position: relative; padding-bottom: 25px; border-bottom: 4px double var(--ink); }
body:not(.journal-view) .article-detail > header::after { content: "〰 ✎"; position: absolute; right: 4px; bottom: 2px; color: var(--terracotta-dark); }
body:not(.journal-view) .editorial-photo-layout figure { padding: 5px; border: 1.5px solid var(--ink); background: #fffdf5; }
body:not(.journal-view) .editorial-photo-layout figcaption { color: var(--ink); font-family: Georgia,serif; font-style: italic; }

body:not(.journal-view) .onboarding-slide { padding: clamp(24px,5vw,54px); border: 5px double var(--ink); background: var(--paper); box-shadow: 7px 8px 0 rgba(28,27,24,.2); }
body:not(.journal-view) .onboarding-progress span { height: 8px; border: 1px solid var(--ink); border-radius: 0; background: transparent; }
body:not(.journal-view) .onboarding-progress span.active { background: var(--terracotta); }
body:not(.journal-view) .onboarding-visual { border: 0; border-radius: 0; background: transparent; }
body:not(.journal-view) .mini-card,
body:not(.journal-view) .paper-sheet { border: 2px solid var(--ink); border-radius: 0; background: #fdf9ef; box-shadow: 4px 4px 0 rgba(28,27,24,.2); }
body:not(.journal-view) .visual-note::before { border: 2px solid var(--ink); border-radius: 0; background: var(--paper); }

body:not(.journal-view) .campaign-admin-preview { border: 5px double var(--ink); border-radius: 0; background: var(--paper); color: var(--ink); box-shadow: 4px 4px 0 rgba(28,27,24,.2); }
body:not(.journal-view) .campaign-admin-preview span,
body:not(.journal-view) .campaign-admin-preview p { color: var(--muted); }
body:not(.journal-view) .issue-cover-mini { border-right: 2px solid var(--ink); background: var(--paper); color: var(--ink); }
body:not(.journal-view) .issue-cover-mini span,
body:not(.journal-view) .issue-cover-mini strong { color: var(--ink); font-family: Georgia,serif; }
body:not(.journal-view) .issue-cover-mini strong { color: var(--terracotta-dark); }
body:not(.journal-view) .studio-stats { border: 2px solid var(--ink); border-radius: 0; background: var(--paper); box-shadow: 4px 4px 0 rgba(28,27,24,.16); }
body:not(.journal-view) .pick-card { border: 1.5px solid var(--ink); border-radius: 0; background: #f2eadb; }
body:not(.journal-view) .pick-card.picked { background: var(--paper); box-shadow: 3px 3px 0 rgba(28,27,24,.2); }
body:not(.journal-view) .auto-order,
body:not(.journal-view) .status { border: 1px solid currentColor; border-radius: 0; background: transparent; }

body:not(.journal-view) .mobile-tabbar { border: 2px solid var(--ink); border-radius: 0; background: rgba(248,243,231,.97); box-shadow: 4px 4px 0 var(--ink); backdrop-filter: none; }
body:not(.journal-view) .mobile-tabbar .mobile-create > span { border: 2px solid var(--ink); background: var(--terracotta); box-shadow: 2px 2px 0 var(--ink); }
body:not(.journal-view) .site-footer { border-top: 5px double var(--ink); color: var(--ink); }
body:not(.journal-view) .empty-state { border: 2px dashed var(--ink); border-radius: 0; background: rgba(248,243,231,.6); }

body.journal-view { background: #cfc7b8; }
body.journal-view .print-toolbar { background: var(--ink); border-bottom: 4px double #f8f3e7; }
body.journal-view .print-page { background-color: #fbf6e9; background-image: repeating-linear-gradient(0deg,transparent 0,transparent 5px,rgba(36,32,25,.018) 6px); color: var(--ink); }
body.journal-view .radio-cover { border-top: 0; padding: 11mm 15mm 15mm; background-color: #fbf6e9; background-image: repeating-linear-gradient(0deg,transparent 0,transparent 5px,rgba(36,32,25,.02) 6px); }
body.journal-view .radio-cover::before { content: none; display: none; }
body.journal-view .cover-masthead { align-items: end; padding: 4mm 0 3mm; border-top: 1.4mm solid var(--ink); border-bottom: 1mm double var(--ink); }
body.journal-view .cover-logo span,
body.journal-view .cover-logo strong { color: var(--ink); font-family: Georgia,serif; font-size: 38pt; }
body.journal-view .cover-logo strong { color: var(--terracotta-dark); }
body.journal-view .cover-logo::after { content: "LA GAZETTE DE LA FAMILLE"; position: absolute; left: .5mm; bottom: -3.2mm; font: 700 6pt Arial,sans-serif; letter-spacing: .13em; white-space: nowrap; }
body.journal-view .cover-number span,
body.journal-view .cover-number strong { color: var(--ink); }
body.journal-view .cover-tagline { margin: 4mm 0 5mm; padding-bottom: 3mm; border-bottom: .35mm solid var(--ink); color: var(--ink); font: italic 11pt Georgia,serif; letter-spacing: .01em; text-align: center; text-transform: none; }
body.journal-view .radio-cover .cover-photo { padding: 2mm; border: .6mm solid var(--ink); background: #fffdf6; }
body.journal-view .radio-cover .cover-photo img { height: 105mm; border-radius: 0; filter: saturate(.86) contrast(1.03); }
body.journal-view .radio-cover .cover-photo figcaption { margin: 2mm 1mm 0; color: var(--ink); font-family: Georgia,serif; font-size: 18pt; font-style: italic; }
body.journal-view .cover-bottom-grid { gap: 6mm; margin-top: 5mm; }
body.journal-view .cover-bottom-grid h1 { color: var(--ink); font-family: Georgia,serif; font-size: 24pt; }
body.journal-view .radio-cover .editorial,
body.journal-view .cover-sommaire { padding: 4mm; border: .7mm double var(--ink); border-radius: 0; background: transparent; color: var(--ink); }
body.journal-view .radio-cover .editorial p { color: var(--ink); }
body.journal-view .radio-article { padding: 15mm 16mm 16mm; border-top: 3mm double var(--ink); }
body.journal-view .radio-article::before { content: "RADIO YMARE — LE COURRIER DE LA FAMILLE"; top: 2.5mm; right: 16mm; width: auto; height: auto; background: transparent; color: var(--terracotta-dark); font: 800 7pt Arial,sans-serif; letter-spacing: .12em; }
body.journal-view .radio-article .print-meta { padding-bottom: 2mm; border-bottom: .3mm solid var(--ink); color: var(--ink); }
body.journal-view .radio-article h1 { color: var(--ink); font-family: Georgia,serif; }
body.journal-view .print-photo-layout figure { padding: 1.5mm; border: .45mm solid var(--ink); background: #fffdf6; }
body.journal-view .print-photo-layout img { filter: saturate(.86) contrast(1.03); }
body.journal-view .print-photo-layout.photos-2 img { height: 72mm; }
body.journal-view .print-photo-layout.photos-4 img { height: 42mm; }
body.journal-view .print-photo-layout figcaption { padding-left: 2mm; border-left: 1mm solid var(--terracotta); color: var(--ink); font-family: Georgia,serif; font-size: 18pt; font-style: italic; }
body.journal-view .radio-article .print-copy { color: var(--ink); font-family: Arial,Verdana,sans-serif; font-size: 18pt; }
body.journal-view .radio-magazine .printed-page-number,
body.journal-view .printed-page-number { color: var(--ink); border-top: .3mm solid var(--ink); }

@media (max-width:760px) {
  body:not(.journal-view) .site-header { min-height: 72px; margin-top: 0; padding: 7px 16px; border-top: 0; background: rgba(248,243,231,.96); }
  body:not(.journal-view) .brand-radio small { font-size: .47rem; }
  body:not(.journal-view) .brand-radio span,
  body:not(.journal-view) .brand-radio strong { font-size: 1.38rem; }
  body:not(.journal-view) .brand-radio i { right: -21px; top: 10px; font-size: .95rem; }
  body:not(.journal-view) .home-hero { padding-top: 38px; }
  body:not(.journal-view) .home-hero h1 { font-size: clamp(2.35rem,11vw,3.2rem); }
  body:not(.journal-view) .campaign-card { margin-top: 25px; padding: 24px 21px 38px; border-radius: 0; }
  body:not(.journal-view) .campaign-card::after { right: 18px; bottom: -18px; width: 78px; height: 78px; font-size: .56rem; }
  body:not(.journal-view) .news-card,
  body:not(.journal-view) .news-card:nth-child(3n+2) { border-radius: 0; transform: none; }
  body:not(.journal-view) .form-heading::after,
  body:not(.journal-view) .page-heading::after { position: static; display: block; margin-top: 12px; }
  body:not(.journal-view) .onboarding-slide { padding: 26px 20px; }
  body:not(.journal-view) .mobile-tabbar { border-radius: 0; }
}

@media print {
  body.journal-view { background: white; }
  body.journal-view .print-page { background-color: white; }
  body.journal-view .radio-article .print-copy,
  body.journal-view .print-photo-layout figcaption,
  body.journal-view .radio-cover .cover-photo figcaption { font-size: 18pt !important; }
}

/* Les petits gestes graphiques : tampons, crayon et papiers découpés. */
body:not(.journal-view) .eyebrow { display: flex; align-items: center; gap: 9px; color: var(--terracotta-dark); font-size: .72rem; letter-spacing: .13em; }
body:not(.journal-view) .eyebrow::before { content: "✦"; color: var(--ink); font-size: .8rem; transform: rotate(-11deg); }
body:not(.journal-view) .auth-card { position: relative; }
body:not(.journal-view) .auth-card::before { content: "ENTRÉE RÉSERVÉE À LA FAMILLE"; position: absolute; right: 18px; top: -13px; padding: 5px 9px; border: 2px solid var(--terracotta); background: var(--paper); color: var(--terracotta-dark); font-size: .62rem; font-weight: 900; letter-spacing: .08em; transform: rotate(2deg); }
body.area-admin .admin-login::before { content: "SALLE DE RÉDACTION"; }
body:not(.journal-view) .field-help { max-width: 690px; font-style: italic; }
body:not(.journal-view) .avatar-preview-current { border: 3px solid var(--paper); outline: 1px solid var(--ink); filter: saturate(.88); }
body:not(.journal-view) .onboarding { max-width: 900px; }
body:not(.journal-view) .card-a { background: repeating-linear-gradient(0deg,#f8f3e7 0,#f8f3e7 18px,#b9b1a3 19px); }
body:not(.journal-view) .card-b { background: linear-gradient(#d4c7ad 0 52%,#f8f3e7 52%); }
body:not(.journal-view) .mini-heart,
body:not(.journal-view) .note-plus { border: 2px solid var(--ink); background: var(--terracotta); box-shadow: 2px 2px 0 var(--ink); transform: rotate(-7deg); }
body:not(.journal-view) .note-line { background: var(--ink); }
body:not(.journal-view) .note-photo { border: 2px solid var(--ink); border-radius: 0; background: #c9b994; }
body:not(.journal-view) .sheet-back { background: #d6ccb9; }
body:not(.journal-view) .sheet-front i { border-radius: 0; background: #777064; }
body:not(.journal-view) .sheet-front i:first-child { background: var(--terracotta); }
body:not(.journal-view) .sheet-front b { border: 1px solid var(--ink); border-radius: 0; background: #c4b28d; }
body:not(.journal-view) .admin-quick-card .quick-icon,
body:not(.journal-view) .auto-issue-orbit { border: 2px solid var(--ink); border-radius: 50%; background: transparent; color: var(--terracotta-dark); }
body:not(.journal-view) .issue-cover-mini b { border: 2px solid var(--ink); border-radius: 0; background: var(--terracotta); color: white; }
body:not(.journal-view) .site-footer strong { display: block; font-family: Georgia,serif; font-size: 1.2rem; }

/* ==========================================================
   VERSION DÉFINITIVE — GAZETTE CLASSIQUE, FINITION MODERNE
   ========================================================== */
:root {
  --cream: #ece7dc;
  --paper: #fbf8f0;
  --ink: #20201d;
  --muted: #6b665d;
  --terracotta: #b44736;
  --terracotta-dark: #863024;
  --line: #c7bfb1;
  --soft: #e4ddd1;
  --shadow: 0 14px 36px rgba(43,38,30,.10);
}
.area-admin { --terracotta: #b44736; --terracotta-dark: #863024; --cream: #ece7dc; --soft: #e4ddd1; }

body:not(.journal-view) .site-header {
  min-height: 98px;
  margin-top: 8px;
  padding: 10px 0 12px;
  border-top: 1px solid var(--ink);
  border-bottom: 3px double var(--ink);
}
body:not(.journal-view) .brand-radio span,
body:not(.journal-view) .brand-radio strong { font-size: 1.9rem; }
body:not(.journal-view) .site-header nav { gap: 18px; }
body:not(.journal-view) .site-header nav a { font-size: .75rem; }

body:not(.journal-view) .button {
  border: 1px solid var(--ink);
  border-radius: 8px;
  box-shadow: 0 2px 0 var(--ink);
}
body:not(.journal-view) .button:hover { box-shadow: none; transform: translateY(2px); }
body:not(.journal-view) .button-spark { box-shadow: 0 3px 0 var(--ink); transform: none; }

body:not(.journal-view) .auth-card,
body:not(.journal-view) .form-section,
body:not(.journal-view) .preview-article,
body:not(.journal-view) .issue-card,
body:not(.journal-view) .admin-item,
body:not(.journal-view) .auto-issue-card,
body:not(.journal-view) .issue-admin-card,
body:not(.journal-view) .admin-quick-card {
  border: 1px solid rgba(32,32,29,.72);
  border-radius: 10px;
  background: var(--paper);
  box-shadow: var(--shadow);
}

body:not(.journal-view) .home-hero { border-bottom-color: rgba(32,32,29,.55); }
body:not(.journal-view) .home-hero h1 { line-height: 1.01; }

body:not(.journal-view) .campaign-card {
  overflow: hidden;
  margin: 40px 0 64px;
  border: 1px solid var(--ink);
  border-top: 5px solid var(--terracotta);
  border-radius: 12px;
  box-shadow: 0 18px 42px rgba(43,38,30,.13);
}
body:not(.journal-view) .campaign-card::after {
  right: 24px;
  bottom: -12px;
  width: 84px;
  height: 84px;
  border-width: 3px;
  background: rgba(251,248,240,.96);
  font-size: .62rem;
}
body:not(.journal-view) .print-date-card { border: 1px solid var(--ink); border-radius: 8px; transform: none; }
body:not(.journal-view) .campaign-progress { border-radius: 999px; overflow: hidden; }

body:not(.journal-view) .section-title { border-bottom-width: 3px; }
body:not(.journal-view) .news-card,
body:not(.journal-view) .news-card:nth-child(3n+2) {
  overflow: hidden;
  border: 1px solid rgba(32,32,29,.72);
  border-radius: 10px;
  box-shadow: 0 12px 30px rgba(43,38,30,.10);
  transform: none;
}
body:not(.journal-view) .news-card:hover { box-shadow: 0 16px 34px rgba(43,38,30,.14); transform: translateY(-3px); }
body:not(.journal-view) .news-card-featured::before { left: 16px; top: 14px; border-width: 1px; border-radius: 4px; transform: none; }
body:not(.journal-view) .card-image-link { border-bottom-width: 1px; }

body:not(.journal-view) .form-heading,
body:not(.journal-view) .page-heading,
body:not(.journal-view) .admin-heading,
body:not(.journal-view) .studio-header { border-bottom-width: 3px; }
body:not(.journal-view) .form-section { border-top: 4px solid var(--ink); }
body:not(.journal-view) .form-section::before {
  top: 14px;
  right: 16px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #f1eadf;
  transform: none;
}
body:not(.journal-view) input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body:not(.journal-view) select,
body:not(.journal-view) textarea {
  border: 1px solid #9f978b;
  border-radius: 8px;
  background: #fffdfa;
}
body:not(.journal-view) input:focus,
body:not(.journal-view) textarea:focus,
body:not(.journal-view) select:focus {
  border-color: var(--terracotta-dark);
  outline: 3px solid rgba(180,71,54,.17);
  outline-offset: 1px;
}
body:not(.journal-view) .upload-zone,
body:not(.journal-view) .avatar-upload,
body:not(.journal-view) .avatar-upload-block { border-radius: 10px; }
body:not(.journal-view) .sticky-submit { border: 1px solid var(--ink); border-radius: 10px; box-shadow: 0 10px 30px rgba(43,38,30,.13); }

/* Portrait : carte tactile stable, champ natif masqué mais accessible. */
body:not(.journal-view) .avatar-upload-block {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 16px;
  padding: 20px;
  border: 1px solid var(--line);
  background: #f4efe5;
}
body:not(.journal-view) .avatar-upload-copy { min-width: 0; }
body:not(.journal-view) .avatar-upload-copy p { max-width: 520px; margin: 5px 0 0; }
body:not(.journal-view) .avatar-current {
  display: grid;
  grid-template-columns: auto;
  justify-items: center;
  gap: 7px;
}
body:not(.journal-view) .avatar-current .avatar-preview-current { grid-row: auto !important; width: 82px; height: 82px; }
body:not(.journal-view) .avatar-remove-existing {
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--muted);
  font-size: .75rem;
  font-weight: 600;
  cursor: pointer;
}
body:not(.journal-view) .avatar-remove-existing input { width: 17px; height: 17px; min-height: 0; margin: 0; accent-color: var(--terracotta); }
body:not(.journal-view) .avatar-upload {
  position: relative;
  grid-column: 1/-1;
  display: grid;
  grid-template-columns: 52px minmax(0,1fr);
  align-items: center;
  gap: 14px;
  min-height: 82px;
  padding: 14px 16px;
  border: 1px dashed #8c8376;
  background: #fffdfa;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}
body:not(.journal-view) .avatar-upload:hover,
body:not(.journal-view) .avatar-upload:focus-within { border-color: var(--terracotta); background: #fff8ed; }
body:not(.journal-view) .avatar-upload.has-file { border-style: solid; border-color: #58705d; background: #f2f7f1; }
body:not(.journal-view) .avatar-upload-text { display: grid; min-width: 0; gap: 3px; }
body:not(.journal-view) .avatar-upload-text strong,
body:not(.journal-view) .avatar-upload-text small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body:not(.journal-view) .avatar-upload-text small { color: var(--muted); font-weight: 400; }
body:not(.journal-view) .avatar-camera { width: 50px; height: 50px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); }
body:not(.journal-view) #author-photo {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  opacity: 0;
}
body:not(.journal-view) #avatar-preview { grid-column: 1/-1; min-width: 0; }
body:not(.journal-view) #avatar-preview:empty { display: none; }
body:not(.journal-view) .avatar-preview-card {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 13px;
  padding-top: 15px;
  border-top: 1px solid var(--line);
}
body:not(.journal-view) .avatar-preview-card .avatar-preview-current { grid-row: auto !important; width: 78px; height: 78px; }
body:not(.journal-view) .avatar-preview-card > span { display: grid; min-width: 0; }
body:not(.journal-view) .avatar-preview-card small { color: var(--muted); font-size: .78rem; }
body:not(.journal-view) .avatar-preview-remove { min-height: 40px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 7px; background: transparent; color: var(--terracotta-dark); font-weight: 700; cursor: pointer; }

body:not(.journal-view) .onboarding-slide { border: 1px solid var(--ink); border-top: 4px solid var(--terracotta); border-radius: 12px; box-shadow: var(--shadow); }
body:not(.journal-view) .campaign-admin-preview { border: 1px solid var(--ink); border-top: 4px solid var(--terracotta); border-radius: 10px; box-shadow: var(--shadow); }
body:not(.journal-view) .studio-stats { border: 1px solid var(--ink); border-radius: 10px; box-shadow: var(--shadow); }
body:not(.journal-view) .pick-card { border: 1px solid var(--line); border-radius: 8px; }
body:not(.journal-view) .pick-card.picked { border-color: var(--ink); box-shadow: 0 6px 18px rgba(43,38,30,.09); }
body:not(.journal-view) .status,
body:not(.journal-view) .auto-order { border-radius: 999px; transform: none; }
body:not(.journal-view) .issue-cover-mini { border-radius: 8px 0 0 8px; }
body:not(.journal-view) .mobile-tabbar { border: 1px solid rgba(32,32,29,.75); border-radius: 16px; box-shadow: 0 12px 34px rgba(43,38,30,.18); }
body:not(.journal-view) .mobile-tabbar .mobile-create > span { border-width: 1px; box-shadow: 0 4px 12px rgba(180,71,54,.25); }

body.journal-view .cover-logo::after { content: "LA GAZETTE DE LA FAMILLE"; }
body.journal-view .cover-masthead { border-top-width: 1mm; border-bottom: .4mm solid var(--ink); }
body.journal-view .radio-cover .cover-photo { border-width: .35mm; }
body.journal-view .print-photo-layout figure { border-width: .25mm; }
body.journal-view .radio-article { border-top: 2mm solid var(--ink); }

@media (max-width:760px) {
  body:not(.journal-view) .site-header { min-height: 70px; border-bottom: 2px solid var(--ink); }
  body:not(.journal-view) .campaign-card { overflow: visible; border-radius: 10px; }
  body:not(.journal-view) .form-section { border-radius: 9px; }
  body:not(.journal-view) .avatar-upload-block { grid-template-columns: minmax(0,1fr); padding: 17px; }
  body:not(.journal-view) .avatar-current { justify-self: start; grid-template-columns: auto 1fr; align-items: center; }
  body:not(.journal-view) .avatar-remove-existing { align-self: center; }
  body:not(.journal-view) .avatar-upload { min-height: 78px; padding: 13px; }
  body:not(.journal-view) .avatar-preview-card { grid-template-columns: auto minmax(0,1fr); }
  body:not(.journal-view) .avatar-preview-remove { grid-column: 2; justify-self: start; }
  body:not(.journal-view) .mobile-tabbar { border-radius: 16px; }
}

/* Bandeau pleine largeur et formulaire mobile compatible avec le clavier. */
body:not(.journal-view) .site-header {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 10px max(18px, calc((100vw - 1240px) / 2)) 12px;
  background: rgba(251,248,240,.97);
  box-shadow: 0 5px 22px rgba(43,38,30,.08);
}

@media (max-width:760px) {
  html { scroll-padding-top: 86px; scroll-padding-bottom: 150px; }
  body:not(.journal-view) .site-header {
    min-height: 72px;
    padding: 7px 16px;
    background: var(--paper);
  }
  body:not(.journal-view) .form-page { margin-top: 28px; }
  body:not(.journal-view) .story-form,
  body:not(.journal-view) .form-section,
  body:not(.journal-view) .form-section label { min-width: 0; }
  body:not(.journal-view) .story-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
  body:not(.journal-view) .story-form select,
  body:not(.journal-view) .story-form textarea {
    display: block;
    min-width: 0;
    max-width: 100%;
    font-size: 16px;
    scroll-margin-block: 120px 190px;
  }
  body:not(.journal-view) .story-form input[type="date"] {
    inline-size: 100%;
    min-inline-size: 0;
  }
  body:not(.journal-view) .story-form input[type="date"]::-webkit-date-and-time-value {
    min-width: 0;
    text-align: left;
  }
  body.keyboard-open .story-form .sticky-submit {
    position: static;
    margin-top: 4px;
  }
body.keyboard-open .mobile-tabbar { display: none !important; }
}

/* Administration simplifiée : courrier → numéro → impression. */
body:not(.journal-view) .admin-dashboard-heading { padding-bottom: 30px; }
body:not(.journal-view) .admin-workflow {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 16px;
  margin: 0 0 22px;
}
body:not(.journal-view) .workflow-card {
  display: grid;
  grid-template-columns: 44px minmax(0,1fr);
  gap: 6px 13px;
  min-height: 166px;
  padding: 20px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--ink);
  border-radius: 10px;
  background: var(--paper);
  box-shadow: 0 10px 28px rgba(43,38,30,.08);
  text-decoration: none;
  transition: transform .18s ease,box-shadow .18s ease;
}
body:not(.journal-view) .workflow-card:hover { transform: translateY(-2px); box-shadow: 0 15px 34px rgba(43,38,30,.13); }
body:not(.journal-view) .workflow-card.is-active { border-top-color: var(--terracotta); }
body:not(.journal-view) .workflow-card.is-ready { border-top-color: var(--sage); }
body:not(.journal-view) .workflow-number {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--ink);
  color: var(--paper);
  font: 900 1rem/1 Arial,sans-serif;
}
body:not(.journal-view) .workflow-card > span:nth-child(2) { display: grid; align-content: start; gap: 2px; min-width: 0; }
body:not(.journal-view) .workflow-card small { color: var(--terracotta-dark); font-size: .68rem; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
body:not(.journal-view) .workflow-card strong { font: 700 1.22rem/1.15 Georgia,serif; }
body:not(.journal-view) .workflow-card em { color: var(--muted); font-size: .8rem; font-style: normal; }
body:not(.journal-view) .workflow-card > b { grid-column: 2; align-self: end; color: var(--terracotta-dark); font-size: .8rem; }
body:not(.journal-view) .admin-dashboard-tools { margin-bottom: 55px; }
body:not(.journal-view) .admin-dashboard-tools a { display: flex; justify-content: space-between; gap: 20px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,253,248,.65); text-decoration: none; }
body:not(.journal-view) .admin-dashboard-tools span { color: var(--muted); font-size: .85rem; }
body:not(.journal-view) .admin-contributions-heading { display: flex; justify-content: space-between; align-items: end; gap: 25px; padding-bottom: 16px; border-bottom: 3px double var(--ink); }
body:not(.journal-view) .admin-contributions-heading h2 { margin-bottom: 4px; }
body:not(.journal-view) .admin-contributions-heading p { margin-bottom: 0; }
body:not(.journal-view) .stat-summary { display: flex; gap: 8px; flex: 0 0 auto; }
body:not(.journal-view) .stat-summary span { padding: 8px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); color: var(--muted); font-size: .78rem; }
body:not(.journal-view) .stat-summary strong { color: var(--ink); font-size: 1rem; }
body:not(.journal-view) .admin-tools { margin: 35px 0; border-top: 1px solid var(--line); color: var(--muted); }
body:not(.journal-view) .admin-tools summary { padding: 16px 0; font-weight: 700; cursor: pointer; }
body:not(.journal-view) .admin-tools > div { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding-bottom: 20px; }
body:not(.journal-view) .admin-tools p { margin: 0; }
body:not(.journal-view) .auto-issue-card.has-draft { border-top: 5px solid var(--terracotta); }
body:not(.journal-view) .switch-row { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 18px; border: 1px solid var(--line); border-radius: 9px; background: #fffdf8; cursor: pointer; }
body:not(.journal-view) .switch-row > span { display: grid; gap: 3px; }
body:not(.journal-view) .switch-row small { color: var(--muted); font-size: .83rem; font-weight: 400; }
body:not(.journal-view) .switch-row input {
  position: relative;
  width: 52px;
  min-width: 52px;
  height: 30px;
  min-height: 30px;
  margin: 0;
  padding: 0;
  appearance: none;
  border: 1px solid #8b857b;
  border-radius: 999px;
  background: #d8d2c8;
  cursor: pointer;
}
body:not(.journal-view) .switch-row input::after { content: ''; position: absolute; left: 3px; top: 3px; width: 22px; height: 22px; border-radius: 50%; background: white; box-shadow: 0 1px 4px rgba(0,0,0,.25); transition: transform .16s ease; }
body:not(.journal-view) .switch-row input:checked { border-color: var(--sage); background: var(--sage); }
body:not(.journal-view) .switch-row input:checked::after { transform: translateX(22px); }

/* Radio Ymare — composition A4 contrôlée, style journal. */
body.journal-view { margin: 0; overflow-x: auto; background: #cfc7b8; }
body.journal-view .print-toolbar { justify-content: space-between; }
body.journal-view .print-toolbar > div { flex: 1; max-width: 540px; }
body.journal-view #print-status.has-error { color: #ffd2cc; font-weight: 800; }
body.journal-view .print-document { width: 210mm; min-height: 0; margin: 24px auto; }
body.journal-view .print-page {
  position: relative;
  box-sizing: border-box;
  width: 210mm;
  min-width: 210mm;
  height: auto;
  min-height: 296mm;
  max-height: none;
  margin: 0 0 20px;
  padding: 14mm 15mm 16mm;
  overflow: visible;
  break-inside: avoid-page;
  page-break-inside: avoid;
  break-after: auto;
  page-break-after: auto;
  box-shadow: 0 10px 35px rgba(0,0,0,.18);
}
body.journal-view .print-page:last-child { break-after: auto; page-break-after: auto; }
body.journal-view .print-page-break { display: block; width: 0; height: 0; break-after: page; page-break-after: always; }
body.journal-view .print-page.page-overflow { outline: 5px solid #c82f2f; outline-offset: -5px; }
body.journal-view .radio-cover { padding: 11mm 15mm 15mm; }
body.journal-view .radio-cover .cover-photo { margin: 0; }
body.journal-view .radio-cover .cover-photo img { width: 100%; height: 98mm; object-fit: cover; }
body.journal-view .radio-cover .cover-photo figcaption { margin: 1.5mm 1mm 0; font-size: 11.5pt !important; line-height: 1.25; }
body.journal-view .cover-no-photo { display: grid; place-items: center; align-content: center; height: 103mm; border: .5mm solid var(--ink); background: repeating-linear-gradient(-45deg,#efe6d6 0,#efe6d6 3mm,#f8f2e7 3mm,#f8f2e7 6mm); text-align: center; }
body.journal-view .cover-no-photo span { font: 900 8pt Arial,sans-serif; letter-spacing: .18em; }
body.journal-view .cover-no-photo strong { max-width: 130mm; margin-top: 4mm; font: 700 27pt/1.05 Georgia,serif; }
body.journal-view .cover-bottom-grid { gap: 6mm; margin-top: 4mm; }
body.journal-view .cover-bottom-grid h1 { margin: 1.5mm 0; font-size: 23pt; line-height: 1.02; }
body.journal-view .radio-cover .editorial,
body.journal-view .cover-sommaire { padding: 3.5mm; }
body.journal-view .radio-cover .editorial p { margin: 1.5mm 0 0; font-size: 10.5pt; line-height: 1.35; }
body.journal-view .radio-cover .editorial small { display: block; margin-top: 2mm; font: italic 8.5pt Georgia,serif; }
body.journal-view .radio-article { padding: 14mm 15mm 16mm; border-top: 2mm solid var(--ink); }
body.journal-view .radio-article::before { top: 2.5mm; right: 15mm; }
body.journal-view .radio-article header { margin-bottom: 4mm; }
body.journal-view .radio-article h1 { max-width: 175mm; margin: 3mm 0 2mm; font-size: 28pt; line-height: 1.04; overflow-wrap: anywhere; }
body.journal-view .radio-article.long-title h1 { font-size: 23pt; }
body.journal-view .print-author { gap: 2.5mm; margin-bottom: 4mm; }
body.journal-view .print-author > img,
body.journal-view .print-author > span { width: 15mm; height: 15mm; flex-basis: 15mm; }
body.journal-view .print-author strong { font-size: 12pt; }
body.journal-view .print-photo-layout { gap: 4mm; margin-bottom: 4mm; }
body.journal-view .print-photo-layout figure { overflow: hidden; padding: 1.2mm; }
body.journal-view .print-photo-layout figcaption { margin-top: 1.2mm; padding-left: 1.5mm; font-size: 11.5pt !important; line-height: 1.25; overflow-wrap: anywhere; }
body.journal-view .print-photo-layout.photos-1 img { width: 100%; height: 98mm; max-height: 98mm; object-fit: contain; }
body.journal-view .print-photo-layout.photos-2 img { height: 66mm; }
body.journal-view .print-photo-layout.photos-3 figure:first-child img { height: 49mm; }
body.journal-view .print-photo-layout.photos-3 figure:not(:first-child) img { height: 38mm; }
body.journal-view .print-photo-layout.photos-4 img { height: 39mm; }
body.journal-view .radio-article .print-copy { color: var(--ink); font: 400 18pt/1.38 Georgia,"Times New Roman",serif; hyphens: auto; overflow-wrap: break-word; }
body.journal-view .radio-article .print-copy p { margin: 0 0 4mm; orphans: 3; widows: 3; }
body.journal-view .radio-article .opening-copy { padding-top: 3mm; border-top: .3mm solid var(--ink); }
body.journal-view .continuation-header { margin-bottom: 8mm; padding-bottom: 4mm; border-bottom: .7mm double var(--ink); }
body.journal-view .continuation-kicker { margin: 5mm 0 0; color: var(--terracotta-dark); font: 900 8pt/1 Arial,sans-serif; letter-spacing: .16em; text-transform: uppercase; }
body.journal-view .article-text-page h1 { margin-top: 2mm; font-size: 25pt; }
body.journal-view .article-text-page.long-title h1 { font-size: 21pt; }
body.journal-view .article-text-page .continuation-header { position: static; margin: 0 0 8mm; }
body.journal-view .article-text-page .newspaper-grid { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; }
body.journal-view .article-text-page .newspaper-grid.is-single { display: block; width: 100%; max-width: 150mm; margin-right: auto; margin-left: auto; }
body.journal-view .article-text-page .newspaper-column { min-width: 0; padding-right: 4mm; }
body.journal-view .article-text-page .newspaper-grid.is-single .newspaper-column { padding-right: 0; }
body.journal-view .article-text-page .newspaper-column + .newspaper-column { min-height: 175mm; padding: 0 0 0 4mm; border-left: .25mm solid #a9a196; }
body.journal-view .article-text-page .newspaper-column + .newspaper-column p:first-child::first-letter { float: none; margin: 0; color: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; }
body.journal-view .editorial-page .newspaper-grid { font-style: italic; }
body.journal-view .article-endmark { margin-top: 5mm; }
body.journal-view .printed-page-number { right: 15mm; bottom: 7mm; padding-top: 1.5mm; border-top: .25mm solid var(--ink); font-size: 8.5pt; }

@media (max-width:900px) {
  body:not(.journal-view) .admin-workflow { grid-template-columns: 1fr; }
  body:not(.journal-view) .workflow-card { min-height: 128px; }
}
@media (max-width:760px) {
  body:not(.journal-view) .admin-dashboard-tools a,
  body:not(.journal-view) .admin-contributions-heading,
  body:not(.journal-view) .admin-tools > div { display: grid; }
  body:not(.journal-view) .stat-summary { flex-wrap: wrap; }
  body:not(.journal-view) .switch-row { display: flex; }
  body.journal-view .print-toolbar { position: relative; justify-content: center; }
  body.journal-view .print-toolbar > div { display: grid; order: -1; width: 100%; flex-basis: 100%; text-align: center; }
  body.journal-view .print-document { margin: 10px 0; }
}

@page { size: A4 portrait; margin: 0; }
@media print {
  html,body.journal-view { width: 210mm; margin: 0; padding: 0; background: white; }
  body.journal-view { overflow: visible; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  body.journal-view .no-print { display: none !important; }
  body.journal-view .print-document { width: 210mm; margin: 0; }
  body.journal-view .print-page {
    width: 210mm;
    min-width: 210mm;
    height: auto;
    min-height: 296mm;
    max-height: none;
    margin: 0;
    overflow: visible;
    box-shadow: none;
    outline: 0;
  }
}
