:root {
  /* El Peor Bareto — Brand tokens */
  --color-background: #000000;
  --color-foreground: #ffffff;
  --color-secondary: #bdbdbd;
  --color-accent: #e00000;
  --color-surface: #111111;
  --color-border: #555555;
  --color-success: #86efac;
  --color-warning: #fcd34d;

  --font-heading: "Oswald", sans-serif;
  --font-body: "IBM Plex Sans", sans-serif;
  --font-mono: "IBM Plex Mono", monospace;

  --spacing-gutter: clamp(20px, 6vw, 32px);
}

/* Oswald — heading */
@font-face {
  font-family: "Oswald";
  src: url("/fonts/Oswald.ttf") format("truetype");
  font-weight: 400 700;
  font-display: swap;
}

/* IBM Plex Sans — body */
@font-face {
  font-family: "IBM Plex Sans";
  src: url("/fonts/IBMPlexSans.ttf") format("truetype");
  font-weight: 400 700;
  font-display: swap;
}

/* IBM Plex Mono — code/labels */
@font-face {
  font-family: "IBM Plex Mono";
  src: url("/fonts/IBMPlexMono.ttf") format("truetype");
  font-weight: 400 700;
  font-display: swap;
}

/* Base styles */
html {
  font-family: var(--font-body);
  background-color: var(--color-background);
  color: var(--color-foreground);
}

body {
  min-height: 100dvh;
  min-height: 100vh; /* fallback */
  margin: 0;
}

/* Safe area padding for mobile */

* { box-sizing: border-box; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }

.level-rail { position:relative; z-index:2; }

.brand-logo { width:76px;height:auto; }
.level-rail { position:absolute;right:clamp(18px,4vw,54px);top:30%;display:grid;gap:16px; }
.level-rail a { display:flex;align-items:center;justify-content:flex-end;gap:10px;color:#666;text-transform:uppercase;font:500 11px var(--font-heading);letter-spacing:.04em; }
.level-rail i { width:10px;height:10px;border:1px solid #666;border-radius:50%; }
.level-rail a.active { color:#ed101b; }.level-rail a.active i { background:#ed101b;border-color:#ed101b; }

.kicker { color:#ed101b;text-transform:uppercase;font:600 14px var(--font-heading);letter-spacing:.04em;margin:0 0 8px; }

.publication-title-group{display:grid;justify-items:start;gap:clamp(8px,1.2vh,16px);max-width:100%}
.publication-headline{position:relative;z-index:1;max-width:28ch;margin:0;color:var(--brand-accent,#ed101b);font:600 clamp(18px,2vw,30px)/1.08 var(--brand-heading,var(--font-heading));text-transform:uppercase;white-space:pre-line}
.body-copy { max-width:43ch;color:#c0c0c0;font:400 clamp(15px,1.4vw,18px)/1.38 var(--font-mono);white-space:pre-line;margin:24px 0 0; }
.cta-stack { display:grid;width:min(290px,100%);margin-top:30px; }
.cta-stack a { min-height:48px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;text-transform:uppercase;font:500 14px var(--font-heading);letter-spacing:.04em;border:1px solid #fff; }
.cta-stack .primary-cta { background:#ed101b;border-color:#ed101b; }

.os-shell { min-height:100svh;background:#080808;color:#f5f5f3;display:grid;grid-template-columns:250px 1fr; }

.os-brand { display:flex;align-items:center;gap:15px;padding-bottom:28px;border-bottom:1px solid #2c2c2c; }
.os-brand img { width:54px; }.os-brand span { display:grid;gap:4px;font:600 12px var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:#aaa; }.os-brand small{color:#ed101b;font-size:8px;letter-spacing:.16em}

.os-main { min-width:0;padding:clamp(24px,5vw,70px); }

.os-page { max-width:1160px;margin:auto; }.os-page.narrow { max-width:760px; }
.eyebrow { color:#ed101b;text-transform:uppercase;font:600 11px var(--font-mono);letter-spacing:.12em;margin-bottom:18px; }
.os-page h1 { font:650 clamp(38px,5vw,70px)/.95 var(--font-heading);text-transform:uppercase;margin:0;letter-spacing:-.025em; }
.os-title-row { display:flex;justify-content:space-between;gap:28px;align-items:flex-start;margin-bottom:42px; }.os-title-row p,.lead { color:#999;max-width:620px;line-height:1.55; }

.workflow{ margin-top:18px;border:1px solid #303030;background:#101010;padding:25px; }.workflow>div { margin-top:20px;display:flex;align-items:center;gap:18px;flex-wrap:wrap; }.workflow span { background:#1a1a1a;padding:11px 16px;font:500 12px var(--font-mono);text-transform:uppercase; }.workflow i { color:#ed101b;font-style:normal; }

.red-button { display:inline-flex!important;align-items:center;justify-content:center;background:#ed101b!important;border:1px solid #ed101b!important;color:white!important;min-height:46px;padding:0 20px;text-transform:uppercase;font:600 12px var(--font-heading);letter-spacing:.05em;cursor:pointer; }
.editor-form { margin-top:38px;display:grid;gap:22px; }.editor-form label{ display:grid;gap:8px;color:#aaa;font:500 12px var(--font-mono);text-transform:uppercase; }
.editor-form input,.editor-form textarea,.editor-form select{ width:100%;background:#111;border:1px solid #444;color:#fff;padding:14px;text-transform:none;outline:none; }.editor-form input:focus,.editor-form textarea:focus,.editor-form select:focus{ border-color:#ed101b;box-shadow:0 0 0 2px #ed101b33; }
.publication-text-field{display:grid;gap:8px;margin-top:18px;padding:14px;border:1px dashed transparent;transition:border-color .16s ease,background .16s ease}.publication-text-field.dragging{border-color:#ed101b;background:#190809}.publication-text-field>label{padding:0}.publication-text-meta{display:flex;align-items:center;justify-content:space-between;gap:12px}.publication-text-meta>small,.text-import-status{color:#888;text-transform:none}.publication-text-import{position:relative;display:inline-flex!important;align-items:center;justify-content:center;min-height:34px;padding:0 12px;border:1px solid #555;color:#fff!important;cursor:pointer;white-space:nowrap}.publication-text-import:hover,.publication-text-import:focus-within{border-color:#ed101b}.publication-text-import input{position:absolute;inset:0;opacity:0;cursor:pointer}.text-import-status{color:#f0b4b4!important}
.two-cols { display:grid;grid-template-columns:1fr 1fr;gap:16px; }.form-actions { display:flex;gap:12px;margin-top:10px; }.form-actions button { min-height:46px;border:1px solid #555;background:transparent;color:white;padding:0 20px;cursor:pointer; }
.success-banner { border:1px solid #97333a;background:#270c0e;color:#ffd9dc;padding:15px; }.success-banner { margin-bottom:25px;border-color:#285a38;background:#0c2213;color:#baf3ca; }.success-banner a { text-decoration:underline;margin-left:10px; }
.empty-state { margin-top:30px;border:1px dashed #444;padding:70px 25px;text-align:center;background:#0d0d0d; }.empty-state b { font:600 28px var(--font-heading);text-transform:uppercase; }.empty-state p { color:#888; }.empty-state a { color:#ed101b;font:600 12px var(--font-mono);text-transform:uppercase; }

.slot-row { margin-bottom:25px; }.slot-row h2 { font:600 20px var(--font-heading);text-transform:uppercase; }.slot-row>div { display:grid;grid-template-columns:repeat(4,1fr);gap:10px; }.slot-row article { min-height:120px;border:1px dashed #444;padding:15px;display:flex;flex-direction:column;justify-content:space-between;color:#666; }.slot-row article.filled { border:1px solid #ed101b;background:#23090b;color:#fff; }.slot-row article span { font:500 11px var(--font-mono); }.slot-row article b { font:600 17px var(--font-heading);text-transform:uppercase; }

@media(max-width:760px){.level-rail{right:12px;top:28%;gap:13px}.level-rail a{font-size:9px;gap:7px}.level-rail i{width:8px;height:8px}.os-shell{display:block;padding-top:66px}.os-brand{padding-bottom:16px}.os-brand img{width:44px}.os-main{padding:24px 18px}.os-title-row{display:block}.os-title-row>.red-button,.os-title-row>.ghost-button{margin-top:16px}.two-cols{grid-template-columns:1fr}.slot-row>div{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.publication-progress span.active::after{animation:none!important;transform:scaleX(1)}}

/* El CSS del módulo se sirve solo dentro de su ruta interna. */
.web-manager-embedded{display:block!important;min-height:100dvh!important}.web-manager-embedded>.os-main{min-height:100dvh!important;padding:0!important}

/* OSeed module host — local Web Manager preview */
.os-shell{
  --oseed-ink:#1d1d1f;
  --oseed-muted:#6e6e73;
  --oseed-line:#d2d2d7;
  --oseed-soft:#f5f5f7;
  --oseed-paper:#fff;
  --oseed-accent:#0071e3;
  --oseed-accent-soft:#e5f1ff;
  --oseed-sidebar:#f6f6f8;
  --oseed-canvas:#f2f2f7;
  min-height:100vh;
  grid-template-columns:17rem minmax(0,1fr);
  background:var(--oseed-canvas);
  color:var(--oseed-ink);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
  font-size:16px;
  line-height:1.45;
}
.os-shell :focus-visible{outline:3px solid color-mix(in srgb,var(--oseed-accent) 72%,white);outline-offset:3px}

.os-shell .os-brand{gap:11px;padding:3px 7px 13px;border-color:var(--oseed-line)}
.os-shell .os-brand img{width:35px;height:35px;border-radius:11px}
.os-shell .os-brand span{display:grid;gap:1px;color:var(--oseed-ink);font:600 14px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none;letter-spacing:0}
.os-shell .os-brand span b{font-size:15px}
.os-shell .os-brand small{color:var(--oseed-muted);font-size:11px;letter-spacing:0;text-transform:none}

.os-shell .os-main{min-height:100vh;padding:0;background:var(--oseed-canvas)}

.os-shell .os-page{max-width:1180px;color:var(--oseed-ink)}
.os-shell .eyebrow{margin-bottom:13px;color:var(--oseed-accent);font:750 11px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;letter-spacing:.075em}
.os-shell .os-page h1{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;font-size:clamp(42px,5vw,68px);font-weight:650;line-height:1;letter-spacing:-.05em;text-transform:none}
.os-shell .os-title-row{margin-bottom:34px}.os-shell .os-title-row p,.os-shell .lead{max-width:650px;color:var(--oseed-muted);font-size:17px;line-height:1.55}

.os-shell .workflow{border:1px solid var(--oseed-line);border-radius:18px;background:var(--oseed-paper);box-shadow:0 1px 2px rgb(32 32 30 / 5%)}

.os-shell .workflow{padding:22px}.os-shell .workflow>div{gap:12px}.os-shell .workflow span{border-radius:10px;background:var(--oseed-soft);color:var(--oseed-ink);font:650 12px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none}.os-shell .workflow i{color:var(--oseed-accent)}

/* OSeed operational language: every Web Manager control uses the Core UI.
   Public-facing pages remain independently themed by each initiative. */
.os-shell button,.os-shell input,.os-shell textarea,.os-shell select{font:inherit}
.os-shell .red-button,.os-shell .ghost-button,.os-shell .form-actions button,.os-shell .publication-actions button,.os-shell .publication-actions a,.os-shell .row-actions button,.os-shell .row-actions a,.os-shell .slot-add,.os-shell .legal-action-editor button{min-height:44px;border:1px solid var(--oseed-line)!important;border-radius:12px;background:var(--oseed-paper)!important;color:var(--oseed-ink)!important;padding:0 16px;font:650 13px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none;letter-spacing:0;box-shadow:0 1px 2px rgb(32 32 30 / 5%)}
.os-shell .red-button,.os-shell .form-actions .red-button{border-color:var(--oseed-accent)!important;background:var(--oseed-accent)!important;color:#fff!important}.os-shell button:hover,.os-shell a:hover{filter:none}.os-shell .red-button:hover,.os-shell .red-button:focus-visible{background:color-mix(in srgb,var(--oseed-accent) 88%,black)!important}
.os-shell button:disabled,.os-shell .red-button:disabled{opacity:.48;cursor:not-allowed}
.os-shell .editor-form label,.os-shell .legal-action-editor label{color:var(--oseed-muted);font:650 12px/1.35 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none;letter-spacing:0}
.os-shell .editor-form input,.os-shell .editor-form textarea,.os-shell .editor-form select,.os-shell .legal-action-editor input{min-height:46px;border:1px solid var(--oseed-line);border-radius:11px;background:var(--oseed-paper);color:var(--oseed-ink);padding:11px 13px;outline:none}
.os-shell textarea{resize:vertical}.os-shell input:focus,.os-shell textarea:focus,.os-shell select:focus{border-color:var(--oseed-accent)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--oseed-accent) 18%,transparent)!important}
.os-shell .form-section,.os-shell .validation-box,.os-shell .showcase-toolbar,.os-shell .slot-row,.os-shell .publication-cards article,.os-shell .empty-state,.os-shell .action-catalog article,.os-shell .legal-action-editor,.os-shell .brand-preview{border:1px solid var(--oseed-line);border-radius:18px;background:var(--oseed-paper);color:var(--oseed-ink);box-shadow:0 1px 2px rgb(32 32 30 / 5%)}
.os-shell .form-section{padding:clamp(20px,3vw,30px)}.os-shell .form-section h2,.os-shell .slot-row h2,.os-shell .publication-cards h2,.os-shell .action-catalog h2{color:var(--oseed-ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;text-transform:none;letter-spacing:-.02em}.os-shell .form-section .step,.os-shell .publication-cards article>span,.os-shell .action-catalog span{color:var(--oseed-accent);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none}
.os-shell .section-help,.os-shell .empty-state p,.os-shell .publication-cards p,.os-shell .action-catalog p,.os-shell .fixed-destination,.os-shell .modal-empty{color:var(--oseed-muted)}
.os-shell .section-buttons button{min-height:44px;border:1px solid var(--oseed-line);border-radius:11px;background:var(--oseed-soft);color:var(--oseed-ink);font:650 12px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none}.os-shell .section-buttons button.active{border-color:var(--oseed-accent);background:var(--oseed-accent-soft);color:var(--oseed-accent)}
.os-shell .asset-field{border:1px dashed var(--oseed-line);border-radius:14px;background:var(--oseed-soft);color:var(--oseed-ink)}.os-shell .asset-field:hover,.os-shell .asset-field:focus-within,.os-shell .publication-text-field.dragging{border-color:var(--oseed-accent);background:var(--oseed-accent-soft)}.os-shell .asset-field small,.os-shell .publication-text-meta small{color:var(--oseed-muted)}
.os-shell .asset-field>span{color:var(--oseed-ink)}.os-shell .asset-field b{color:var(--oseed-accent)}.os-shell .asset-field.loaded{border-color:#a8d4b5;background:#f3faf5}
.os-shell .cta-editor{border:1px solid var(--oseed-line);border-radius:14px;background:var(--oseed-soft);color:var(--oseed-ink)}
.os-shell .publication-text-import{min-height:40px;border:1px solid var(--oseed-line);border-radius:10px;background:var(--oseed-paper);color:var(--oseed-ink)!important;text-transform:none}.os-shell .publication-text-import:hover{border-color:var(--oseed-accent)}
.os-shell .validation-box{border-left:4px solid var(--oseed-accent);padding:18px 20px}.os-shell .success-banner{border:1px solid #a8d4b5;border-radius:12px;background:#e8f5ed;color:#2e7245}.os-shell .success-banner a{color:inherit}
.os-shell .validation-box>b{color:var(--oseed-ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none}.os-shell .validation-box ul{color:#715000}
.os-shell .sticky-actions{bottom:0;margin:0 -1px -1px;padding:14px 0;border-top:1px solid var(--oseed-line);background:color-mix(in srgb,var(--oseed-canvas) 90%,transparent);backdrop-filter:blur(14px)}
.os-shell .draft-save-state,.os-shell .publication-status{border:0;border-radius:999px;background:var(--oseed-soft);color:var(--oseed-muted);font:650 11px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none}.os-shell .draft-save-state.saved,.os-shell .publication-status.ready{background:#e8f5ed;color:#2e7245}.os-shell .draft-save-state.saving,.os-shell .publication-status.draft{background:#fff0c7;color:#715000}
.os-shell .publication-filters button{border:1px solid var(--oseed-line);border-radius:999px;background:var(--oseed-paper);color:var(--oseed-muted)}.os-shell .publication-filters button.active{border-color:var(--oseed-accent);background:var(--oseed-accent-soft);color:var(--oseed-accent)}
.os-shell .publication-stats>div{border:1px solid var(--oseed-line);border-radius:12px;background:var(--oseed-soft);color:var(--oseed-ink)}.os-shell .publication-actions>b{color:#2e7245;text-transform:none}
.os-shell .showcase-toolbar{padding:16px 18px}.os-shell .showcase-toolbar span{color:var(--oseed-accent)}.os-shell .showcase-toolbar b{color:var(--oseed-ink)}
.os-shell .slot-row{padding:20px}.os-shell .slot-row>div{gap:12px}.os-shell .slot-card,.os-shell .slot-add{border:1px dashed var(--oseed-line)!important;border-radius:14px;background:var(--oseed-soft)!important;color:var(--oseed-muted)!important}.os-shell .slot-card.filled{border-style:solid!important;border-color:var(--oseed-accent)!important;background:var(--oseed-paper)!important;color:var(--oseed-ink)!important}.os-shell .slot-card:hover,.os-shell .slot-add:hover{border-color:var(--oseed-accent)!important;color:var(--oseed-accent)!important}
.os-shell .modal-backdrop,.os-shell .incomplete-dialog-backdrop{background:rgb(29 29 31 / 42%);backdrop-filter:blur(4px)}.os-shell .library-modal,.os-shell .incomplete-dialog{border:1px solid var(--oseed-line);border-radius:20px;background:var(--oseed-paper);color:var(--oseed-ink);box-shadow:0 24px 90px rgb(29 29 31 / 22%)}.os-shell .modal-close{border:0!important;background:var(--oseed-soft)!important;color:var(--oseed-muted)!important;border-radius:999px}
.os-shell .modal-library button{border:1px solid var(--oseed-line);border-radius:12px;background:var(--oseed-paper);color:var(--oseed-ink)}.os-shell .modal-library button:hover{border-color:var(--oseed-accent);background:var(--oseed-accent-soft)}
.os-shell .danger{border-color:#e5a69d!important;background:#fff0ee!important;color:#8a1f1f!important}

.os-shell .action-catalog article>button{border:1px solid var(--oseed-line);border-radius:11px;background:var(--oseed-soft);color:var(--oseed-muted)}.os-shell .action-catalog article>button.active{border-color:#a8d4b5;color:#2e7245}.os-shell .action-catalog article>button.active i{background:#34734a}
.os-shell .legal-action-editor article{border-color:var(--oseed-line);background:var(--oseed-soft);border-radius:14px}

html[data-theme="dark"] .os-shell{
  --oseed-ink:#f5f5f7;--oseed-muted:#aeaeb2;--oseed-line:#3a3a3c;--oseed-soft:#2c2c2e;--oseed-paper:#1c1c1e;--oseed-accent:#0a84ff;--oseed-accent-soft:#173250;--oseed-sidebar:#161618;--oseed-canvas:#121214;
  background:#121214;
  color:#f5f5f7;
}

@media(max-width:760px){
  .os-shell{padding-top:66px}.os-shell .os-title-row{display:grid;gap:10px}.os-shell .workflow>div{display:grid;grid-template-columns:1fr auto 1fr}.os-shell .workflow span{text-align:center}
}

/* Magazine public experience */
.public-empty{height:100dvh;background:#000;display:grid;place-items:center}.public-empty img{width:clamp(68px,8vw,110px);opacity:.55}.public-empty .floating-brand{opacity:1}.public-empty-message{width:min(520px,calc(100% - 96px));padding:24px}.public-empty-message h1{margin:0;font:650 clamp(34px,5vw,64px)/.98 var(--brand-heading,var(--font-heading));text-transform:uppercase}.public-empty-message p:last-child{max-width:46ch;color:var(--brand-muted,#c3c4bf);font:400 16px/1.5 var(--brand-body,var(--font-body))}
.magazine-shell{height:100dvh;overflow:hidden;background:#000;color:#fff;position:relative}.magazine-levels{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scroll-behavior:smooth}.magazine-level{height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden}.magazine-row{height:100%;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scroll-behavior:smooth;scrollbar-width:none;touch-action:auto;cursor:default}.magazine-row::-webkit-scrollbar{display:none}.magazine-page{--desktop-image:none;--mobile-image:none;position:relative;isolation:isolate;flex:0 0 100vw;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;padding:clamp(28px,5vw,72px);display:flex;align-items:flex-end;background:#000}.magazine-page::before{content:"";position:absolute;z-index:-2;inset:0;background-image:var(--desktop-image);background-size:cover;background-position:center}.magazine-page::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.55) 36%,rgba(0,0,0,.06) 72%),linear-gradient(0deg,rgba(0,0,0,.94),transparent 58%)}.floating-brand{position:fixed;z-index:20;left:clamp(28px,5vw,72px);top:clamp(28px,5vw,62px);width:clamp(64px,7vw,104px);height:auto}.magazine-shell .level-rail{position:fixed;z-index:20;top:50%;transform:translateY(-50%);right:clamp(14px,3vw,42px);display:grid;gap:17px}.level-rail::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;background:#777;transform:translateX(-50%);z-index:-1}.level-rail button{border:0;background:transparent;color:#777;display:flex;align-items:center;justify-content:flex-end;gap:11px;text-transform:uppercase;font:500 13px var(--font-heading);cursor:pointer;padding:8px;position:relative}.level-rail button i{width:12px;height:12px;border:2px solid currentColor;border-radius:50%;background:#000}.level-rail button.active{color:#ed101b}.level-rail button.active i{background:#ed101b}.level-rail button:hover,.level-rail button:focus-visible{color:#ed101b}.level-rail button:disabled{opacity:.35;cursor:default}.scene-content{width:min(520px,calc(100% - 70px));padding-bottom:clamp(22px,3vw,42px)}.publication-title-image{display:block;width:auto;height:auto;max-width:min(390px,100%);max-height:clamp(120px,24vh,260px);object-fit:contain;object-position:left bottom}.scene-count{display:block;margin-top:24px;color:#777;font:500 10px var(--font-mono);letter-spacing:.12em}

/* Editorial editor and library */
.form-section{position:relative;border-top:1px solid #333;padding:30px 0 12px}.form-section .step{position:absolute;right:0;top:30px;color:#666;font:500 11px var(--font-mono)}.form-section h2{font:600 27px var(--font-heading);text-transform:uppercase;margin:0 0 20px}.section-help{color:#8e8e8e;max-width:65ch;line-height:1.5}.section-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.section-buttons button{min-height:52px;border:1px solid #444;background:#111;color:#aaa;text-transform:uppercase;font:600 13px var(--font-heading);cursor:pointer}.section-buttons button.active{background:#e00000;border-color:#e00000;color:#fff}.asset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.asset-field{min-height:240px;border:1px dashed #555;background:#0d0d0d;padding:18px;display:flex!important;flex-direction:column;align-items:flex-start;justify-content:flex-end;cursor:pointer;overflow:hidden;position:relative}.asset-field>span{position:absolute;top:17px;left:17px;color:#fff}.asset-field small{position:absolute;top:42px;left:17px;color:#777;text-transform:none}.asset-field b{color:#ed101b;margin-top:auto}.asset-field input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.asset-field img{position:absolute;inset:70px 12px 12px;width:calc(100% - 24px);height:calc(100% - 82px);object-fit:contain}.asset-field.loaded{border-style:solid;border-color:#356947}.cta-editor{border:1px solid #333;padding:18px;background:#0d0d0d}.cta-editor label small{color:#777;text-transform:none;line-height:1.4}.fixed-destination{color:#888;font-size:13px}.ghost-button{min-height:46px;border:1px solid #555;background:transparent;color:#fff;padding:0 18px;text-transform:uppercase;font:600 11px var(--font-mono);cursor:pointer}.validation-box{border:1px solid #444;background:#101010;padding:20px;color:#aaa}.validation-box>b{color:#fff;text-transform:uppercase;font:600 14px var(--font-heading)}.validation-box ul{color:#fcd34d;margin-bottom:0}.sticky-actions{position:sticky;bottom:0;z-index:5;background:#080808e8;padding:16px 0;border-top:1px solid #333}.publication-cards{display:grid;gap:10px}.publication-cards article{display:grid;grid-template-columns:110px minmax(0,1fr) 150px;gap:20px;align-items:center;border:1px solid #333;background:#101010;padding:12px}.publication-thumb{height:130px;background-size:cover;background-position:center;display:grid;place-items:center}.publication-thumb img{max-width:80%;max-height:65%;object-fit:contain}.publication-cards span{color:#ed101b;font:600 10px var(--font-mono);text-transform:uppercase}.publication-cards h2{font:600 24px var(--font-heading);text-transform:uppercase;margin:6px 0}.publication-cards p{color:#999;margin:0 0 8px;max-width:65ch}.publication-cards small{color:#777}.publication-actions{display:grid;gap:7px;align-self:stretch;align-content:center}.publication-actions>b{color:#86efac;font:500 11px var(--font-mono);text-transform:uppercase;margin-bottom:4px}.publication-actions button{min-height:36px;border:1px solid #444;background:#151515;color:#fff;text-align:left;padding:8px 10px;cursor:pointer;font:500 9px var(--font-mono);text-transform:uppercase}.publication-actions button:hover,.publication-actions button:focus-visible{border-color:#e00000}.publication-stats{display:flex;gap:10px;margin-top:14px}.publication-stats>div{min-width:120px;border:1px solid #333;background:#080808;padding:11px;display:grid;gap:4px}.publication-stats b{font:600 24px var(--font-heading)}.publication-stats span{color:#777;font-size:8px}

/* Showcase modal */
.slot-card{min-height:150px;border:1px dashed #444;background:#0d0d0d;color:#777;padding:13px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;text-align:left;cursor:pointer;overflow:hidden}.slot-card:hover{border-color:#e00000;color:#fff}.slot-card.filled{border-style:solid;border-color:#7d1519;color:#fff}.slot-thumb{width:100%;height:75px;background-size:cover;background-position:center}.slot-card small{font:500 10px var(--font-mono)}.slot-card b{font:600 15px var(--font-heading);text-transform:uppercase}.modal-backdrop{position:fixed;z-index:100;inset:0;background:#000d;display:grid;place-items:center;padding:20px}.library-modal{width:min(720px,100%);max-height:85dvh;overflow:auto;background:#111;border:1px solid #444;padding:30px;position:relative}.library-modal h2{font:600 38px var(--font-heading);text-transform:uppercase;margin:0 0 20px}.modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:white;font-size:32px;cursor:pointer}.modal-library{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.modal-library button{border:1px solid #333;background:#171717;color:#fff;min-height:100px;padding:12px;text-align:left;display:grid;grid-template-columns:75px 1fr;gap:10px;cursor:pointer}.modal-library button:hover{border-color:#e00000}.modal-library button>span{grid-row:1/3;width:75px;height:75px;background-size:cover;background-position:center}.modal-library button>b{font:600 17px var(--font-heading);text-transform:uppercase}.modal-library button>small{color:#86efac}.modal-empty{color:#999}
.incomplete-dialog-backdrop{position:fixed;z-index:9999;inset:0;width:100vw;height:100dvh;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:auto;padding:clamp(16px,4vw,40px);background:rgba(0,0,0,.84);isolation:isolate}.incomplete-dialog{position:relative;z-index:1;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #f59e0b;background:#111;color:#fff;padding:clamp(24px,4vw,40px);box-shadow:0 24px 90px #000}.incomplete-dialog>span{color:#f59e0b;font:600 10px var(--font-mono);text-transform:uppercase}.incomplete-dialog h2{margin:10px 0;font:600 clamp(34px,5vw,54px)/.95 var(--font-heading);text-transform:uppercase}.incomplete-dialog p{color:#aaa;line-height:1.55}.incomplete-dialog ul{margin:20px 0;padding:16px 16px 16px 34px;border-left:3px solid #f59e0b;background:#19150c;color:#fcd34d}.incomplete-dialog>div{display:flex;gap:10px;flex-wrap:wrap}.incomplete-dialog .red-button{background:#f59e0b;border-color:#f59e0b;color:#111}.publication-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 18px}.publication-filters button{min-height:46px;border:1px solid #353535;background:transparent;color:#888;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;text-transform:uppercase;font:600 11px var(--font-heading);cursor:pointer}.publication-filters button small{color:#666;font:500 9px var(--font-mono)}.publication-filters button:hover,.publication-filters button:focus-visible{border-color:#777;color:#fff}.publication-filters button.active{border-color:#ed101b;color:#fff}.publication-filters button.active small{color:#ed101b}.publication-cards article.publication-ready{border-left:4px solid #4ade80}.publication-cards article.publication-draft{border-color:#333!important;border-left:4px solid #f59e0b!important}
.oseed-incomplete-dialog-backdrop{background:rgb(29 29 31 / 38%);backdrop-filter:blur(6px)}.oseed-incomplete-dialog-backdrop .incomplete-dialog{width:min(590px,100%);border:1px solid #d2d2d7;border-radius:22px;background:#fff;color:#1d1d1f;padding:clamp(26px,4vw,40px);box-shadow:0 28px 100px rgb(29 29 31 / 28%);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}.oseed-incomplete-dialog-backdrop .incomplete-dialog>span{display:inline-flex;width:max-content;padding:7px 10px;border-radius:999px;background:#fff0c7;color:#715000;font:700 11px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none}.oseed-incomplete-dialog-backdrop .incomplete-dialog h2{margin:18px 0 10px;color:#1d1d1f;font:650 clamp(34px,5vw,48px)/1 -apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;letter-spacing:-.045em;text-transform:none}.oseed-incomplete-dialog-backdrop .incomplete-dialog p{margin:0;color:#6e6e73;font-size:16px;line-height:1.55}.oseed-incomplete-dialog-backdrop .incomplete-dialog ul{margin:22px 0;padding:16px 18px 16px 38px;border:1px solid #f0d995;border-left:4px solid #d49b16;border-radius:13px;background:#fff9e8;color:#715000}.oseed-incomplete-dialog-backdrop .incomplete-dialog>div{margin-top:24px;gap:10px}.oseed-incomplete-dialog-backdrop .incomplete-dialog button{min-height:46px;border:1px solid #d2d2d7;border-radius:12px;background:#fff;color:#1d1d1f;padding:0 18px;font:650 14px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;text-transform:none;cursor:pointer}.oseed-incomplete-dialog-backdrop .incomplete-dialog .red-button{border-color:#0071e3;background:#0071e3;color:#fff}.oseed-incomplete-dialog-backdrop .incomplete-dialog .red-button:hover,.oseed-incomplete-dialog-backdrop .incomplete-dialog .red-button:focus-visible{background:#0062c4}.oseed-incomplete-dialog-backdrop .incomplete-dialog button:focus-visible{outline:3px solid #82bfff;outline-offset:3px}.oseed-incomplete-dialog-backdrop .incomplete-dialog button:disabled{opacity:.5;cursor:not-allowed}
html[data-theme="dark"] .oseed-incomplete-dialog-backdrop .incomplete-dialog{border-color:#3a3a3c;background:#1c1c1e;color:#f5f5f7}.oseed-incomplete-dialog-backdrop .incomplete-dialog h2{color:inherit}html[data-theme="dark"] .oseed-incomplete-dialog-backdrop .incomplete-dialog p{color:#aeaeb2}html[data-theme="dark"] .oseed-incomplete-dialog-backdrop .incomplete-dialog ul{border-color:#6a5522;background:#2b2618;color:#ffd66b}html[data-theme="dark"] .oseed-incomplete-dialog-backdrop .incomplete-dialog button:not(.red-button){border-color:#3a3a3c;background:#2c2c2e;color:#f5f5f7}
@media(max-width:760px){.publication-filters{grid-template-columns:1fr 1fr}.publication-filters button:first-child{grid-column:1/-1}.incomplete-dialog>div{display:grid}.incomplete-dialog>div>*{width:100%}}

/* Login, access, responsive lab and brand */
.toggle{min-width:135px;border:1px solid #555;background:#181818;color:#aaa;padding:10px;cursor:pointer}.toggle i{display:inline-block;width:10px;height:10px;border-radius:50%;background:#777;margin-right:8px}.toggle.active{border-color:#e00000;color:#fff}.toggle.active i{background:#e00000}.surface-switch{display:flex;gap:8px;margin-bottom:18px}.surface-switch button{min-height:44px;padding:0 18px;border:1px solid #444;background:#111;color:#999;cursor:pointer}.surface-switch button.active{border-color:#e00000;background:#24090b;color:#fff}.device-frame{flex:none;border:8px solid #292929;border-radius:18px;overflow:hidden;box-shadow:0 18px 70px #000;transform-origin:top center;max-width:none}.device-frame iframe{border:0;width:100%;height:100%;background:#000}.brand-preview{border:1px solid;background:#050505;min-height:430px;padding:40px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.brand-preview>span{text-transform:uppercase;font:600 11px var(--font-mono)}.brand-preview img{max-width:120px;max-height:120px;margin:35px 0}.brand-preview h2{font-size:55px;text-transform:uppercase;margin:0 0 12px}.brand-preview p{color:#777}.brand-preview button{border:0;color:#fff;padding:14px 22px;text-transform:uppercase}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#777;margin-right:7px}.status-dot.active{background:#86efac}.row-actions{display:flex;gap:7px}.row-actions button{border:1px solid #444;background:#111;color:#fff;padding:8px 10px;cursor:pointer;font:500 9px var(--font-mono);text-transform:uppercase}.row-actions button.danger{color:#ff8d95;border-color:#613035}

@media(max-width:760px){
  .magazine-page{padding:20px;align-items:flex-end}.magazine-page::before{background-image:var(--mobile-image);background-position:center 18%}.magazine-page::after{background:linear-gradient(0deg,rgba(0,0,0,.98) 0%,rgba(0,0,0,.78) 43%,rgba(0,0,0,.08) 76%),linear-gradient(90deg,rgba(0,0,0,.25),transparent 60%)}.floating-brand{left:20px;top:24px;width:66px}.magazine-shell .level-rail{right:8px;gap:10px}.level-rail button{font-size:8px;gap:6px;padding:3px}.level-rail button i{width:8px;height:8px}.scene-content{width:calc(100% - 30px);padding-bottom:max(14px,env(safe-area-inset-bottom))}.publication-headline{max-width:22ch;margin-bottom:10px;font-size:18px}.publication-title-image{max-width:75%;max-height:150px}.magazine-page .body-copy{font-size:14px;line-height:1.34;margin-top:18px;max-width:37ch}.magazine-page .cta-stack{margin-top:20px;width:100%}.magazine-page .cta-stack a{min-height:46px}.scene-count{margin-top:14px}.section-buttons{grid-template-columns:1fr 1fr}.asset-grid{grid-template-columns:1fr}.asset-field{min-height:220px}.publication-cards article{grid-template-columns:80px minmax(0,1fr)}.publication-thumb{height:110px}.publication-actions{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.publication-actions>b{grid-column:1/-1}.publication-stats{flex-wrap:wrap}.publication-stats>div{flex:1}.modal-library{grid-template-columns:1fr}
  .brand-preview{min-height:360px;padding:28px}
  .row-actions{flex-wrap:wrap}
}

/* OS readability: navigation and publication controls */

.publication-cards{
  gap:14px;
}
.publication-cards article{
  grid-template-columns:120px minmax(0,1fr) 190px;
  gap:22px;
  padding:16px;
}
.publication-cards p{
  font-size:15px;
  line-height:1.5;
}
.publication-cards small{
  font-size:12px;
  line-height:1.4;
}
.publication-actions{
  gap:9px;
}
.publication-actions>b{
  font-size:12px;
  line-height:1.35;
}
.publication-actions a,
.publication-actions button{
  min-height:46px;
  padding:11px 13px;
  font:600 12px/1.25 var(--font-mono);
  letter-spacing:.01em;
}

@media (min-width:821px) and (max-width:1050px){
  .os-shell{grid-template-columns:220px 1fr}
  
  .os-main{padding:36px 24px}
  .publication-cards article{
    grid-template-columns:100px minmax(0,1fr);
    gap:16px;
  }
  .publication-thumb{height:120px}
  .publication-actions{
    grid-column:1/-1;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .publication-actions>b{grid-column:1/-1}
}

@media(max-width:820px){
  
  
  
  .publication-cards article{grid-template-columns:88px minmax(0,1fr);gap:14px;padding:14px}
  .publication-cards h2{font-size:22px;line-height:1.05}
  .publication-cards p{font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .publication-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .publication-actions a,.publication-actions button{min-height:48px;font-size:12px;padding:11px 12px}
  .publication-actions .danger{grid-column:1/-1}
}

.magazine-shell .level-rail button:hover,.magazine-shell .level-rail button:focus-visible{color:var(--brand-accent,#ed101b)}
.magazine-shell .primary-cta{background:var(--brand-accent,#e00000);border-color:var(--brand-accent,#e00000)}

/* OS navigation hierarchy and protected DEV */

.dev-auth-dialog{width:min(760px,100%);background:#111;border:1px solid #444;padding:clamp(28px,5vw,54px);display:grid;gap:18px;position:relative}.dev-auth-dialog h2{font:650 clamp(38px,5vw,62px)/.96 var(--font-heading);text-transform:uppercase;margin:0}.dev-auth-dialog p{color:#aaa;font-size:17px;line-height:1.5;margin:0 0 4px}.dev-auth-dialog label{display:grid;gap:9px;color:#aaa;font:500 11px var(--font-mono);text-transform:uppercase}.dev-auth-dialog input{min-height:58px;background:#0a0a0a;border:1px solid #555;color:#fff;padding:0 16px;font-size:18px}.dev-auth-dialog input:focus{border-color:#ed101b;outline:3px solid #ed101b33}

/* Library editing actions */
.publication-actions a,.publication-actions button{min-height:38px;border:1px solid #444;background:#151515;color:#fff;text-align:left;padding:9px 10px;cursor:pointer;font:500 9px var(--font-mono);text-transform:uppercase;display:flex;align-items:center}.publication-actions a:hover,.publication-actions a:focus-visible,.publication-actions button:hover,.publication-actions button:focus-visible{border-color:#e00000}.publication-actions .danger{color:#ff8d95;border-color:#613035}

/* Showcase publishing toolbar */
.showcase-toolbar{position:sticky;top:0;z-index:30;margin:calc(-1 * clamp(24px,5vw,70px)) 0 38px;padding:14px 0;background:#080808f2;border-bottom:1px solid #333;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;gap:18px}.showcase-toolbar>div:first-child{display:grid;gap:3px}.showcase-toolbar span{color:#ed101b;font:600 9px var(--font-mono);text-transform:uppercase}.showcase-toolbar b{color:#888;font:500 11px var(--font-mono)}.showcase-toolbar>div:last-child{display:flex;gap:8px}

.device-switcher{display:flex;align-items:center;gap:4px;padding:5px;border:1px solid #d9d9d6;border-radius:13px;background:#fff;box-shadow:0 8px 28px #0003}

/* Full-screen public web preview from DEV */

/* Corporate login: no editorial photography */

/* Prevent iOS field zoom and keep focused fields readable */
.editor-form input,.editor-form textarea,.editor-form select{font-size:16px;scroll-margin-top:110px}

@media(max-width:760px){
  .dev-auth-dialog{width:100%;max-height:92dvh;overflow:auto;border-width:1px 0 0;padding:28px 20px max(28px,env(safe-area-inset-bottom))}.dev-auth-dialog h2{font-size:38px}.dev-auth-dialog input{font-size:16px}.showcase-toolbar{top:66px;margin:-24px -18px 30px;padding:12px 18px;align-items:stretch;display:grid}.showcase-toolbar>div:first-child{display:none}.showcase-toolbar>div:last-child{display:grid;grid-template-columns:1fr 1fr}.showcase-toolbar .red-button,.showcase-toolbar .ghost-button{min-height:50px;padding:8px 10px;font-size:10px}.publication-actions{grid-template-columns:repeat(2,1fr)}.publication-actions>b{grid-column:1/-1}.publication-actions a,.publication-actions button{min-height:44px}.os-main{scroll-padding-top:110px}
}

/* Final OS readability overrides */

.publication-actions a,.publication-actions button{min-height:46px;padding:11px 13px;font:600 12px/1.25 var(--font-mono);letter-spacing:.01em}

@media(max-width:820px){
  .publication-actions a,.publication-actions button{min-height:48px;font-size:12px;padding:11px 12px}
}

@media (min-width:761px) and (max-width:820px){
  .os-shell{display:block;padding-top:66px}
  
  
  
  
  
  
  
  
  
  
  .os-main{padding:34px 28px;scroll-padding-top:110px}
}

/* Public level rail: the connector follows the marker axis */
.magazine-shell .level-rail{
  gap:18px;
}
.magazine-shell .level-rail::before{
  top:-64px;
  bottom:-64px;
  left:auto;
  right:15.5px;
  width:1px;
  background:#c3c4bf;
  transform:none;
}
.magazine-shell .level-rail button{
  color:#c3c4bf;
  font-size:12px;
  font-weight:500;
  letter-spacing:.01em;
}
.magazine-shell .level-rail button i{
  width:16px;
  height:16px;
  border:1px solid currentColor;
  background:#111;
}
.magazine-shell .level-rail button:disabled{
  opacity:.88;
}
.magazine-shell .level-rail button.active{
  color:var(--brand-accent,#ed101b);
}
.magazine-shell .level-rail button.active i{
  background:var(--brand-accent,#ed101b);
  border-color:var(--brand-accent,#ed101b);
}
@media(max-width:760px){
  .magazine-shell .level-rail{top:39%;gap:14px}
  .magazine-shell .level-rail::before{top:-88px;bottom:-88px;right:9.5px}
  .magazine-shell .level-rail button{gap:8px;font-size:10px}
  .magazine-shell .level-rail button i{width:14px;height:14px}
}

/* Dedicated responsive viewport laboratory */
.responsive-lab{position:fixed;z-index:190;inset:0;background:#d9d9d4;color:#171716;display:grid;grid-template-rows:auto minmax(0,1fr)}
.responsive-lab-toolbar{position:relative;min-height:72px;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f5f5f2;border-bottom:1px solid #d0d0cb}
.responsive-lab-actions>a{min-height:42px;padding:0 11px;border:1px solid #c9c9c4;border-radius:9px;background:#fff;display:flex;align-items:center;justify-content:center;font:600 10px var(--font-mono);text-transform:uppercase;white-space:nowrap}
.apply-review-button{min-height:42px;padding:0 15px;border:1px solid #171716;border-radius:9px;background:#171716;color:#fff;cursor:pointer;font:700 10px var(--font-mono);text-transform:uppercase}.apply-review-button:disabled{border-color:#c9c9c4;background:#e4e4df;color:#888;cursor:default}
.save-graphic-profile-button{min-height:42px;padding:0 15px;border:1px solid #b42328;border-radius:9px;background:#fff;color:#9f1118;cursor:pointer;font:700 10px var(--font-mono);text-transform:uppercase}.save-graphic-profile-button:hover,.save-graphic-profile-button:focus-visible{background:#fff3f3;border-color:#ed101b;color:#ed101b}.save-graphic-profile-button:disabled{opacity:.55;cursor:wait}
.legal-action-editor{margin-top:28px;border-top:1px solid #3a3a3a;padding-top:28px}.legal-action-editor>header span{color:#ed101b;font:600 9px var(--font-mono);text-transform:uppercase}.legal-action-editor>header h2{margin:8px 0;font:600 30px var(--font-heading);text-transform:uppercase}.legal-action-editor>header p{color:#888}.legal-action-editor>div{display:grid;gap:8px;margin-top:18px}.legal-action-editor article{display:grid;grid-template-columns:1fr 1.3fr auto auto;gap:8px;align-items:end;border:1px solid #333;background:#101010;padding:12px}.legal-action-editor label{display:grid;gap:6px;color:#777;font:500 9px var(--font-mono);text-transform:uppercase}.legal-action-editor input{min-height:42px;border:1px solid #444;background:#080808;color:#fff;padding:0 12px}.legal-action-editor button{min-height:42px;border:1px solid #555;background:#151515;color:#fff;padding:0 14px;text-transform:uppercase;font:600 9px var(--font-mono);cursor:pointer}.legal-action-editor button.danger{color:#ff8d95;border-color:#613035}.legal-action-editor form{display:grid;grid-template-columns:1fr 1.3fr auto;gap:8px;margin-top:12px}.legal-action-editor form .red-button{background:#ed101b;border-color:#ed101b}
@media(max-width:760px){.legal-action-editor article,.legal-action-editor form{grid-template-columns:1fr}.legal-action-editor article button{width:100%}}
.responsive-device-switcher{position:absolute;left:50%;top:10px;transform:translateX(-50%);display:flex;gap:4px;padding:5px;border:1px solid #d4d4cf;border-radius:13px;background:#fff;box-shadow:0 8px 28px #0002}.responsive-device-switcher button{width:44px;height:40px;border:0;border-radius:9px;background:transparent;color:#777;display:grid;grid-template-rows:21px 9px;place-items:center;cursor:pointer;padding:4px 2px}.responsive-device-switcher button:hover,.responsive-device-switcher button:focus-visible{background:#ecece9;color:#111;outline:none}.responsive-device-switcher button.active{background:#171716;color:#fff}.responsive-device-switcher svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.responsive-device-switcher small{font:600 7px/1 var(--font-mono)}
.responsive-lab-actions{display:flex;align-items:center;gap:6px}.responsive-surface-switch{display:flex;padding:3px;border:1px solid #c9c9c4;border-radius:9px;background:#fff}.responsive-surface-switch button{min-width:46px;min-height:34px;border:0;border-radius:6px;background:transparent;color:#666;cursor:pointer;font:600 10px var(--font-mono);text-transform:uppercase}.responsive-surface-switch button.active{background:#171716;color:#fff}
.responsive-lab-stage{position:relative;min-height:0;padding:24px;display:flex;align-items:center;justify-content:center;overflow:auto;background-image:radial-gradient(#b9b9b3 1px,transparent 1px);background-size:18px 18px}.responsive-frame-holder{position:relative;flex:none}.responsive-real-frame{position:absolute;left:0;top:0;transform-origin:top left;background:#000;box-shadow:0 22px 70px #0004;overflow:hidden}.responsive-real-frame iframe{display:block;width:100%;height:100%;border:0;background:#000}
@media(max-width:820px){.responsive-lab-toolbar{min-height:126px;padding:70px 12px 10px;display:grid;grid-template-columns:1fr;gap:8px}.responsive-device-switcher{top:10px}.responsive-lab-actions{width:100%;display:grid;grid-template-columns:1fr 1fr auto;gap:5px}.responsive-lab-actions>a{display:none}.responsive-text-toolbar{padding:7px 10px}.responsive-lab-stage{padding:12px}}
@media(max-width:760px){.magazine-page .cta-stack{width:min(250px,calc(100vw - 80px))}}

/* Live identity preview */
.identity-panel-trigger{min-height:42px;padding:0 14px;border:1px solid #c9c9c4;border-radius:9px;background:#fff;color:#222;cursor:pointer;font:600 10px var(--font-mono);text-transform:uppercase}
.identity-panel-trigger:disabled{color:#999;background:#ecece8;cursor:wait}
.identity-preview-panel{position:fixed;z-index:220;right:0;top:0;bottom:0;width:min(680px,92vw);background:#fff;color:#151515;border-left:1px solid #d1d1cc;box-shadow:-24px 0 70px #0003;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden}
.identity-preview-panel>header{display:flex;align-items:flex-start;justify-content:space-between;padding:28px 24px 18px}.identity-preview-panel>header span{color:#456624;font:700 12px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.identity-preview-panel h2{margin:4px 0 0;font:650 38px/1 var(--font-heading)}.identity-preview-panel>header button{width:52px;height:52px;border:0;border-radius:12px;background:#f0f0ed;color:#222;font-size:30px;cursor:pointer}
.identity-draft-note{margin:0 24px 18px;padding:16px;border:1px solid #aeb99f;border-radius:12px;background:#e5eadf;font-size:15px;line-height:1.5}.identity-preview-panel>nav{display:flex;gap:6px;padding:0 24px 18px;border-bottom:1px solid #deded9;overflow:auto}.identity-preview-panel>nav button{min-height:42px;border:0;border-radius:22px;background:transparent;color:#17122f;padding:0 16px;font-weight:700;cursor:pointer;white-space:nowrap}.identity-preview-panel>nav button.active{background:#1d1d1b;color:#fff}
.identity-preview-content{overflow:auto;padding:24px}.identity-preview-content section>p{margin:0 0 22px;color:#303046;font-size:16px;line-height:1.5}.identity-color-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.identity-color-grid label{border:1px solid #d7d7d1;border-radius:12px;padding:15px;display:grid;gap:12px}.identity-color-grid label>span{font-weight:700}.identity-color-grid label>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.identity-color-grid input{width:56px;height:42px;border:0;background:transparent;padding:0}.identity-color-grid code{color:#555}
.identity-density-grid button.active{border-color:#456624;background:#e5eadf}
.identity-logo-preview{min-height:230px;border:1px solid #d7d7d1;border-radius:12px;background:#111;display:grid;place-items:center;margin-bottom:14px}.identity-logo-preview img{max-width:180px;max-height:150px}.identity-file-button{min-height:48px;border:1px solid #bbb;border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:700;cursor:pointer}.identity-file-button input{position:absolute;opacity:0;pointer-events:none}
.identity-density-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.identity-density-grid button{min-height:190px;border:1px solid #d7d7d1;border-radius:12px;background:#fff;color:#171717;padding:16px;display:grid;align-content:center;gap:8px;text-align:left;cursor:pointer}.identity-density-grid i{height:70px;border-radius:8px;background:#f0f0ed;padding:18px 12px;display:grid;align-content:center;gap:5px}.identity-density-grid i span{height:5px;border-radius:3px;background:#17122f}.identity-density-grid i span:nth-child(2){width:70%}.identity-density-grid b{font-size:20px}.identity-density-grid small{color:#29223e}
.identity-preview-panel>footer{border-top:1px solid #deded9;padding:16px 24px 20px;display:grid;gap:10px}.identity-preview-panel>footer span{font-size:12px}.identity-preview-panel>footer button{min-height:50px;border:1px solid #d7d7d1;border-radius:10px;background:#f2f2ef;font-weight:700;cursor:pointer}

.magazine-shell{background:var(--brand-background,#000);color:var(--brand-foreground,#fff);font-family:var(--brand-heading,var(--font-body))}.magazine-shell .body-copy,.magazine-shell .scene-count,.magazine-shell .level-rail button:not(.active){color:var(--brand-muted,#c3c4bf)}.magazine-shell.density-compact .magazine-page{padding:clamp(20px,3vw,44px)}.magazine-shell.density-compact .scene-content{padding-bottom:16px}.magazine-shell.density-spacious .magazine-page{padding:clamp(40px,7vw,96px)}.magazine-shell.density-spacious .scene-content{padding-bottom:56px}
.os-shell{background:var(--os-preview-background,#080808);color:var(--os-preview-foreground,#f5f5f3);font-family:var(--os-preview-font,var(--font-body))}.os-shell .eyebrow,.os-shell .os-brand small{color:var(--os-preview-accent,#ed101b)}.os-shell .os-title-row p{color:var(--os-preview-muted,#999)}.os-shell.density-compact .os-main{padding:clamp(20px,3vw,42px)}.os-shell.density-spacious .os-main{padding:clamp(44px,7vw,92px)}
@media(max-width:760px){.identity-preview-panel{width:100vw}.identity-preview-panel>header{padding:20px 18px 14px}.identity-preview-panel h2{font-size:32px}.identity-draft-note{margin:0 18px 14px}.identity-preview-panel>nav{padding:0 18px 14px}.identity-preview-content{padding:20px 18px}.identity-color-grid,.identity-density-grid{grid-template-columns:1fr}.identity-density-grid button{min-height:120px}.identity-preview-panel>footer{padding:12px 18px max(16px,env(safe-area-inset-bottom))}.responsive-lab-actions{gap:5px}.identity-panel-trigger{padding:0 9px;font-size:9px}}

/* Compact identity workspace beside the responsive canvas */
.identity-preview-panel{width:min(460px,92vw)}
.identity-preview-panel>header{padding:18px 18px 12px}.identity-preview-panel>header span{font-size:10px}.identity-preview-panel h2{font-size:30px}.identity-preview-panel>header button{width:42px;height:42px;font-size:25px}
.identity-draft-note{margin:0 18px 12px;padding:11px 13px;font-size:12px;line-height:1.4}.identity-preview-panel>nav{gap:3px;padding:0 18px 12px}.identity-preview-panel>nav button{min-height:36px;padding:0 11px;font-size:12px}.identity-preview-content{padding:16px 18px}.identity-preview-content section>p{margin-bottom:14px;font-size:13px}.identity-color-grid{gap:8px}.identity-color-grid label{padding:11px;gap:8px}.identity-color-grid label>div{justify-content:flex-start}.identity-color-grid .identity-color-picker{width:38px;height:38px;border-radius:50%;overflow:hidden;flex:none}.identity-color-picker::-webkit-color-swatch-wrapper{padding:0}.identity-color-picker::-webkit-color-swatch{border:1px solid #aaa;border-radius:50%}.identity-color-grid .identity-color-value{width:100%;height:38px;border:1px solid #d1d1cc;border-radius:8px;background:#fff;color:#222;padding:0 9px;font:600 12px var(--font-mono);text-transform:uppercase}
.identity-font-stack{display:grid;gap:9px}.identity-font-control{border:1px solid #d7d7d1;border-radius:10px;padding:11px;display:grid;grid-template-columns:minmax(88px,1fr) 46px;gap:9px;align-items:center}.identity-font-control>div{display:grid;gap:2px}.identity-font-control>div span{font-weight:800}.identity-font-control>div small{color:#666}.identity-font-control>b{font-size:28px;text-align:center}.identity-font-control>label:not(.identity-font-file){grid-column:1/-1;display:grid;gap:4px;color:#666;font-size:9px;text-transform:uppercase}.identity-font-control>label input{height:38px;border:1px solid #d1d1cc;border-radius:7px;padding:0 9px}.identity-font-file{grid-column:1/-1;min-height:38px;border:1px solid #bbb;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;cursor:pointer}.identity-font-file input{position:absolute;opacity:0;pointer-events:none}
.identity-logo-preview{min-height:160px}.identity-density-grid{gap:8px}.identity-density-grid button{min-height:145px;padding:11px}.identity-density-grid i{height:52px;padding:12px 9px}.identity-density-grid b{font-size:16px}.identity-preview-panel>footer{padding:10px 18px 14px}.identity-preview-panel>footer button{min-height:42px}
.responsive-lab-toolbar,.responsive-lab-stage{transition:margin-right .22s ease}
@media(min-width:1100px){.responsive-lab.identity-open .responsive-lab-toolbar,.responsive-lab.identity-open .responsive-lab-stage{margin-right:460px}}

/* Direct copy editing inside the real responsive viewport */
.text-editor-trigger{min-height:42px;padding:0 14px;border:1px solid #c9c9c4;border-radius:9px;background:#fff;color:#222;cursor:pointer;font:600 10px var(--font-mono);text-transform:uppercase}.text-editor-trigger.active{border-color:#171716;background:#171716;color:#fff}
.responsive-lab.text-editing{grid-template-rows:auto auto minmax(0,1fr)}
.responsive-text-toolbar{min-height:64px;padding:8px 12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));align-items:stretch;gap:8px;overflow:auto;background:#f7f7f4;border-bottom:1px solid #c9c9c4;color:#222;font:600 10px var(--font-mono);text-transform:uppercase;transition:margin-right .22s ease}.responsive-control-group{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:8px 10px;border:1px solid #d7d7d1;border-radius:10px;background:#fff}.responsive-control-group>header{min-width:118px;display:grid;gap:2px;padding-right:10px;border-right:1px solid #d7d7d1}.responsive-control-group>header span{color:#777;font-size:8px;letter-spacing:.1em}.responsive-control-group>header b{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 11px var(--font-heading);text-transform:none}.responsive-control-group>header small{color:#456624;font-size:8px}.responsive-control-group>label{display:flex;align-items:center;gap:6px;white-space:nowrap}.responsive-text-toolbar input[type="number"]{width:58px;height:34px;border:1px solid #c9c9c4;border-radius:7px;padding:0 7px;font:600 11px var(--font-mono)}.responsive-text-toolbar input[type="range"]{width:78px;accent-color:#171716}.responsive-text-toolbar output{min-width:34px;color:#666}.responsive-text-hint{align-self:center;color:#666;text-transform:none;font-size:12px}.composition-controls{background:#ecece7;border-color:#d0d0c9}.composition-controls>header{border-color:#c7c7c0}
.responsive-frame-navigation{position:absolute;z-index:5;inset:0;pointer-events:none}.responsive-frame-nav{position:absolute;top:50%;width:50px;height:64px;border:1px solid #bdbdb7;border-radius:12px;background:#f7f7f2e8;color:#171716;box-shadow:0 8px 24px #0002;transform:translateY(-50%);font-size:25px;cursor:pointer;pointer-events:auto}.responsive-frame-nav.previous{left:-66px}.responsive-frame-nav.next{right:-66px}.responsive-frame-nav:hover,.responsive-frame-nav:focus-visible{border-color:#171716;background:#fff;outline:none}.review-status-toast{position:fixed;z-index:230;left:50%;top:82px;max-width:min(620px,90vw);transform:translateX(-50%);padding:10px 16px;border:1px solid #9eaa90;border-radius:9px;background:#e5eadf;color:#294016;font:600 11px var(--font-mono);box-shadow:0 8px 26px #0002}
.preview-text-editing [data-preview-edit-key]{cursor:text;outline:1px dashed #e00000aa;outline-offset:5px}.preview-text-editing [data-preview-element]:hover{outline:1px dashed #fff;outline-offset:4px}.preview-text-editing [data-preview-selected="true"]{outline:2px solid var(--brand-accent,#e00000)!important;outline-offset:6px}.preview-text-editing [data-preview-edit-key]:focus{outline:2px solid var(--brand-accent,#e00000);outline-offset:6px;background:#0007}.preview-text-editing .cta-stack a{cursor:default}.preview-text-editing .magazine-row{scroll-behavior:smooth}
.preview-text-editing .magazine-page[data-preview-selected="true"]{outline:0!important;box-shadow:inset 0 0 0 3px var(--brand-accent,#e00000)}
@media(min-width:1100px){.responsive-lab.identity-open .responsive-text-toolbar{margin-right:460px;grid-template-columns:1fr}.responsive-lab.identity-open .responsive-lab-toolbar{min-height:124px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-content:center}.responsive-lab.identity-open .responsive-lab-actions{grid-column:2;grid-row:1}.responsive-lab.identity-open .responsive-device-switcher{position:static;grid-column:1/-1;grid-row:2;justify-self:center;transform:none}}
@media(max-width:1099px){.responsive-text-toolbar{justify-content:flex-start;overflow-x:auto}.responsive-text-toolbar>label{flex:none}}
@media(max-width:820px){.responsive-lab-toolbar{padding-top:70px;flex-wrap:wrap}.responsive-lab-actions{width:100%;justify-content:center}.responsive-text-toolbar{padding:7px 10px}.responsive-text-toolbar>b{flex:none}.responsive-text-hint{min-width:210px}.text-editor-trigger,.identity-panel-trigger{min-height:38px}}

/* Responsive OS composition controls used by Editorial Review */
@media(min-width:821px){
  .os-shell{grid-template-columns:var(--os-sidebar-width,250px) minmax(0,1fr)}
  
  
  
  .os-shell .os-main{width:min(100%,var(--os-content-width,100%));padding:var(--os-content-padding,50px);transform:translate(var(--os-content-x,0),var(--os-content-y,0)) scale(var(--os-content-scale,1));transform-origin:left top}
}

/* Persisted editorial composition, scoped by the active responsive profile */
.magazine-shell .floating-brand{transform:translate(var(--template-brand-x,0),var(--template-brand-y,0)) scale(var(--template-brand-scale,1));transform-origin:top left}
.magazine-shell .level-rail{transform:translate(var(--template-menu-x,0),calc(-50% + var(--template-menu-y,0))) scale(var(--template-menu-scale,1));transform-origin:right center}
.magazine-shell .magazine-page{overflow:hidden}
.magazine-shell .magazine-page::before{background-position:var(--template-background-x,50%) var(--template-background-y,50%);transform:scale(var(--template-background-zoom,1));transform-origin:var(--template-background-x,50%) var(--template-background-y,50%)}
.magazine-shell .scene-content{width:min(520px,var(--template-content-width,100%),calc(100% - 70px));transform:translate(var(--template-content-x,0),var(--template-content-y,0)) scale(var(--template-content-scale,1));transform-origin:left bottom}
.magazine-shell .publication-headline{width:min(100%,var(--template-headline-width,100%));transform:translate(var(--template-headline-x,0),var(--template-headline-y,0)) scale(var(--template-headline-scale,1));transform-origin:left bottom;margin-bottom:clamp(8px,1.2vh,16px)}
.magazine-shell .publication-title-group{width:min(390px,100%,var(--template-title-width,100%));transform:translate(var(--template-title-x,0),var(--template-title-y,0)) scale(var(--template-title-scale,1));transform-origin:left bottom}
.magazine-shell .publication-title-image{max-width:100%}
.magazine-shell .body-copy{width:min(42ch,var(--template-body-width,100%));height:var(--template-body-height,auto);max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;tab-size:4;overflow:visible;transform:translate(var(--template-body-x,0),var(--template-body-y,0)) scale(var(--template-body-scale,1));transform-origin:left top}
.magazine-shell [contenteditable="plaintext-only"],.os-shell [contenteditable="plaintext-only"]{white-space:pre-wrap;tab-size:4;caret-color:var(--brand-accent,#ed101b)}
.magazine-shell .cta-stack{width:min(290px,var(--template-buttons-width,100%));transform:translate(var(--template-buttons-x,0),var(--template-buttons-y,0)) scale(var(--template-buttons-scale,1));transform-origin:left top}
@media(max-width:760px){.magazine-shell .scene-content{width:min(calc(100% - 30px),var(--template-content-width,100%))}.magazine-shell .publication-title-group{width:min(75%,var(--template-title-width,100%))}.magazine-shell .cta-stack{width:min(250px,calc(100vw - 80px),var(--template-buttons-width,100%))}}

/* MacBook 14: 1512px de ancho con la altura útil reducida por el navegador. */
@media(min-width:1200px) and (max-height:900px){
  .magazine-page{padding:clamp(30px,3.6vw,54px)}
  .floating-brand{left:clamp(30px,3.6vw,54px);top:clamp(24px,3.2vw,44px);width:clamp(62px,5.4vw,82px)}
  .scene-content{width:min(460px,var(--template-content-width,100%),calc(100% - 90px));padding-bottom:clamp(8px,1.5vh,18px)}
  .publication-title-group{gap:8px}
  .publication-headline{font-size:clamp(18px,1.55vw,24px)}
  .publication-title-image{max-height:min(22vh,190px)}
  .body-copy{margin-top:14px;font-size:clamp(14px,1.05vw,16px);line-height:1.34}
  .cta-stack{margin-top:18px}
  .cta-stack a{min-height:40px;font-size:12px}
  .scene-count{margin-top:12px}
}

/* Three-level type hierarchy in live previews */
.magazine-shell{font-family:var(--brand-body,var(--font-body))}.magazine-shell .magazine-page{background-color:var(--brand-background,#000)}.magazine-shell h1,.magazine-shell h2,.magazine-shell .publication-title-image,.magazine-shell .cta-stack a,.magazine-shell .level-rail button{font-family:var(--brand-heading,var(--font-heading))}.magazine-shell .kicker,.magazine-shell .scene-count{font-family:var(--brand-auxiliary,var(--font-mono))}
.os-shell{font-family:var(--os-preview-body,var(--font-body))}.os-shell h1,.os-shell h2,.os-shell h3,.os-shell .red-button{font-family:var(--os-preview-heading,var(--font-heading))}.os-shell .eyebrow,.os-shell small,.os-shell .publication-actions a,.os-shell .publication-actions button{font-family:var(--os-preview-auxiliary,var(--font-mono))}

/* DEV is a focused, full-screen workspace. */
.dev-page-header>a{display:inline-flex;min-height:42px;align-items:center;margin-bottom:28px;border:1px solid #414141;padding:0 14px;color:#fff;text-transform:uppercase;font:600 10px var(--font-mono)}.dev-page-header>a:hover,.dev-page-header>a:focus-visible{border-color:#ed101b}.dev-page-header{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:start;margin-bottom:36px}.dev-page-header h1{margin:2px 0 8px}.dev-page-header p{color:#999}.action-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:1180px}.action-catalog article{display:grid;grid-template-columns:86px 1fr;gap:20px;align-items:center;border:1px solid #333;background:#101010;padding:18px}.action-catalog article>button{min-height:58px;border:1px solid #555;background:#171717;color:#aaa;font:600 9px var(--font-mono);text-transform:uppercase}.action-catalog article>button i{display:block;width:9px;height:9px;margin:0 auto 7px;border-radius:50%;background:#777}.action-catalog article>button.active{color:#9aefb5;border-color:#356947}.action-catalog article>button.active i{background:#4ade80}.action-catalog h2{margin:0;font:600 24px var(--font-heading);text-transform:uppercase}.action-catalog span{color:#ed101b;font:600 9px var(--font-mono);text-transform:uppercase}.action-catalog p{margin:8px 0 0;color:#888}.draft-save-state{align-self:center;border:1px solid #444;padding:9px 11px;color:#aaa;font:600 9px var(--font-mono);text-transform:uppercase}.draft-save-state.saving{color:#fbbf24;border-color:#7c5d18}.draft-save-state.saved{color:#86efac;border-color:#356947}.publication-status{display:flex!important;align-items:center;gap:8px}.publication-status i{width:9px;height:9px;border-radius:50%;background:#777;box-shadow:0 0 0 3px #7772}.publication-status.ready{color:#86efac}.publication-status.ready i{background:#4ade80;box-shadow:0 0 0 3px #4ade8022}.publication-status.draft{color:#fbbf24}.publication-status.draft i{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b22}.publication-draft{border-color:#574319!important}

@media(max-width:760px){.action-catalog{grid-template-columns:1fr}}

/* Centro DEV: una sola pantalla, jerarquía ligera y tarjetas sin relleno. */

.responsive-text-toolbar select{max-width:210px;height:34px;border:1px solid #c9c9c4;border-radius:7px;padding:0 28px 0 9px;background:#fff;color:#171716;font:600 10px var(--font-mono)}

/* Acceso público: entrada ligera y wizard de marca. */

.magazine-shell .floating-brand{top:clamp(92px,9vw,122px)}

@media(max-width:760px){.magazine-shell .floating-brand{left:20px;top:80px;width:66px}}

/* Barra de estado por publicación y pie legal público. */
.magazine-level{position:relative}
.publication-progress{position:absolute;z-index:16;left:50%;bottom:52px;width:min(var(--template-progress-width,72%),calc(100% - 40px));display:grid;grid-template-columns:repeat(var(--progress-count,1),minmax(0,1fr));gap:2px;background:#ffffff12;pointer-events:none;transform:translate(calc(-50% + var(--template-progress-x,0)),var(--template-progress-y,0)) scale(var(--template-progress-scale,1));transform-origin:center}
.publication-progress span{position:relative;height:2px;background:#d8d8d866;overflow:visible}.publication-progress span::after{content:"";position:absolute;inset:0;background:var(--progress-color,var(--brand-accent,#ed101b));opacity:var(--progress-opacity,1);transform:scaleX(0);transform-origin:left center}.publication-progress span.active::after{animation:publication-progress-fill var(--progress-duration,5000ms) linear forwards}.publication-progress.fill-total span.filled::after{transform:scaleX(1)}.publication-progress.effect-glow span.active::after{box-shadow:0 0 var(--progress-glow,8px) var(--progress-color,var(--brand-accent,#ed101b))}.publication-progress.effect-reflection span.active::after{background:linear-gradient(100deg,var(--progress-color,var(--brand-accent,#ed101b)) 0 68%,#fff 78%,var(--progress-color,var(--brand-accent,#ed101b)) 88%);background-size:220% 100%;animation:publication-progress-fill var(--progress-duration,5000ms) linear forwards,publication-progress-reflection 1.2s ease-out 1}.publication-progress.effect-pulse span.active::after{box-shadow:0 0 var(--progress-glow,8px) var(--progress-color,var(--brand-accent,#ed101b));animation:publication-progress-fill var(--progress-duration,5000ms) linear forwards,publication-progress-pulse 1.6s ease-in-out infinite}.preview-text-editing .publication-progress span.active::after{animation-play-state:paused;transform:scaleX(1)}
@keyframes publication-progress-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes publication-progress-reflection{from{background-position:180% 0}to{background-position:-20% 0}}
@keyframes publication-progress-pulse{0%,100%{filter:brightness(.9)}50%{filter:brightness(1.55)}}
.preview-text-editing .publication-progress{pointer-events:auto;cursor:pointer;padding:8px 0;margin-bottom:-8px}
.public-legal-footer{position:fixed;z-index:15;left:50%;bottom:12px;width:min(var(--template-legal-width,88%),calc(100% - 40px));display:flex;justify-content:space-between;align-items:center;gap:18px;color:#c4c4c0;text-shadow:0 1px 12px #000;font:500 9px var(--font-mono);text-transform:uppercase;letter-spacing:.04em;transform:translate(calc(-50% + var(--template-legal-x,0)),var(--template-legal-y,0)) scale(var(--template-legal-scale,1));transform-origin:center}.public-legal-footer a{color:inherit;text-decoration:none;white-space:nowrap}.public-legal-footer a:hover,.public-legal-footer a:focus-visible{color:#fff}.public-empty .public-legal-footer{color:#777;text-shadow:none}
.slot-add{min-height:120px;border:1px dashed #555;background:transparent;color:#888;padding:15px;text-transform:uppercase;font:600 11px var(--font-mono);cursor:pointer}.slot-add:hover,.slot-add:focus-visible{border-color:#ed101b;color:#fff;outline:none}.slot-add:disabled{opacity:.5;cursor:wait}
@media(max-width:760px){.publication-progress{left:50%;bottom:54px;width:min(var(--template-progress-width,82%),calc(100% - 40px))}.publication-progress span{height:2px}.public-legal-footer{left:50%;bottom:10px;width:min(var(--template-legal-width,88%),calc(100% - 40px));display:flex;justify-content:space-between;gap:8px;font-size:8px}.public-legal-footer a:first-child{margin-right:auto}.public-legal-footer a:nth-child(2){display:none}}

/* The incomplete-publication dialog is portaled outside .os-shell, so its
   primary action must override the legacy public-site button token. */
.oseed-incomplete-dialog-backdrop .incomplete-dialog .red-button {
  border-color: #0071e3 !important;
  background: #0071e3 !important;
  color: #fff !important;
}
.oseed-incomplete-dialog-backdrop .incomplete-dialog .red-button:hover,
.oseed-incomplete-dialog-backdrop .incomplete-dialog .red-button:focus-visible {
  background: #0062c4 !important;
}

/* Manipulación directa del laboratorio editorial. El marco vive dentro del
   iframe para conservar coordenadas reales aunque el dispositivo esté escalado. */
.preview-transform-overlay {
  position: fixed;
  z-index: 10000;
  border: 2px solid #0071e3;
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgb(255 255 255 / 75%);
  pointer-events: none;
}
.preview-transform-overlay[hidden] { display: none; }
.preview-transform-overlay button {
  position: absolute;
  pointer-events: auto;
  border: 2px solid #fff;
  background: #0071e3;
  color: #fff;
  box-shadow: 0 2px 8px rgb(0 0 0 / 30%);
  touch-action: none;
  user-select: none;
}
.preview-move-handle {
  left: 50%;
  top: -34px;
  min-width: 66px;
  min-height: 28px;
  border-radius: 999px;
  padding: 0 10px;
  transform: translateX(-50%);
  font: 700 10px/1 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  text-transform: uppercase;
  letter-spacing: .04em;
  cursor: grab;
}
.preview-move-handle:active { cursor: grabbing; }
.preview-scale-handle {
  right: -11px;
  bottom: -11px;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  padding: 0;
  font: 700 12px/1 sans-serif;
  cursor: nwse-resize;
}
.preview-transform-label {
  position: absolute;
  left: 0;
  bottom: calc(100% + 7px);
  max-width: min(240px, 70vw);
  overflow: hidden;
  color: #fff;
  text-overflow: ellipsis;
  text-shadow: 0 1px 4px #000;
  white-space: nowrap;
  font: 650 10px/1 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
}
.preview-transform-overlay[data-transforming] { border-style: dashed; }
.preview-transform-overlay button:focus-visible {
  outline: 3px solid #82bfff;
  outline-offset: 2px;
}
/* El fondo ocupa toda la pantalla del iframe. Sus mandos no pueden salir
   fuera del lienzo, porque quedarían recortados y no se podrían arrastrar. */
.preview-transform-overlay[data-element="background"] .preview-move-handle {
  top: 12px;
  left: 50%;
}
.preview-transform-overlay[data-element="background"] .preview-scale-handle {
  right: 12px;
  bottom: 12px;
}
.preview-transform-overlay[data-element="background"] .preview-transform-label {
  top: 18px;
  left: 14px;
  transform: none;
  background: rgb(0 0 0 / 56%);
  padding: 4px 6px;
  border-radius: 5px;
}
@media (pointer: coarse) {
  .preview-move-handle { top: -44px; min-height: 38px; min-width: 80px; }
  .preview-scale-handle { right: -15px; bottom: -15px; width: 30px; height: 30px; }
}

/* OSeed · cabecera e inspectores del laboratorio editorial */
.responsive-lab {
  --lab-accent: #0071e3;
  --lab-accent-hover: #0062c4;
  --lab-paper: #fff;
  --lab-canvas: #f5f5f7;
  --lab-soft: #eef5ff;
  --lab-line: #d2d2d7;
  --lab-ink: #1d1d1f;
  --lab-muted: #6e6e73;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
}
.responsive-lab-toolbar {
  min-height: 64px;
  padding: 10px 16px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  background: rgb(245 245 247 / 96%);
  border-color: var(--lab-line);
  backdrop-filter: blur(18px);
}
.responsive-lab-actions > a,
.responsive-lab-actions > button {
  min-height: 42px;
  border: 1px solid var(--lab-line);
  border-radius: 12px;
  background: var(--lab-paper);
  color: var(--lab-ink);
  padding: 0 13px;
  font: 650 11px/1.2 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}
.responsive-lab-actions { min-width: 0; justify-content: flex-end; flex-wrap: nowrap; gap: 7px; }
.responsive-lab-actions > a,
.responsive-lab-actions > button { padding-inline: 10px; }
.responsive-lab-actions > button { cursor: pointer; }
.responsive-lab .apply-review-button:not(:disabled),
.responsive-lab .text-editor-trigger.active {
  border-color: var(--lab-accent);
  background: var(--lab-accent);
  color: #fff;
}
.responsive-lab .apply-review-button:not(:disabled):hover,
.responsive-lab .text-editor-trigger.active:hover { background: var(--lab-accent-hover); }
.responsive-lab .apply-review-button:disabled {
  border-color: var(--lab-line);
  background: #e8e8ed;
  color: #8e8e93;
}
.responsive-lab .save-graphic-profile-button {
  border-color: #b8d7f6;
  background: var(--lab-soft);
  color: #0057a8;
}
.responsive-lab .save-graphic-profile-button:hover,
.responsive-lab .save-graphic-profile-button:focus-visible { border-color: var(--lab-accent); background: #e2f0ff; color: #004f99; }
.responsive-lab .identity-panel-trigger { border-color: var(--lab-line); border-radius: 12px; color: var(--lab-ink); font: 650 11px/1.2 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif; text-transform: none; }
.responsive-device-switcher {
  position: static;
  justify-self: center;
  transform: none;
  border-color: var(--lab-line);
  border-radius: 14px;
  box-shadow: 0 6px 22px rgb(29 29 31 / 10%);
}
.responsive-device-switcher button { border-radius: 10px; color: var(--lab-muted); }
.responsive-device-switcher button:hover,
.responsive-device-switcher button:focus-visible { background: var(--lab-soft); color: var(--lab-accent); }
.responsive-device-switcher button.active { background: var(--lab-accent); color: #fff; }
.responsive-surface-switch { border-color: var(--lab-line); border-radius: 12px; }
.responsive-surface-switch button { border-radius: 9px; color: var(--lab-muted); font: 700 10px/1 -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif; }
.responsive-surface-switch button.active { background: var(--lab-accent); color: #fff; }
.responsive-text-toolbar {
  max-height: min(42dvh, 390px);
  border-color: var(--lab-line);
  background: var(--lab-canvas);
  color: var(--lab-ink);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif;
  text-transform: none;
}
.responsive-control-group,
.composition-controls { border-color: var(--lab-line); border-radius: 14px; background: var(--lab-paper); }
.responsive-control-group > header { border-color: var(--lab-line); }
.responsive-control-group > header span { color: var(--lab-accent); }
.responsive-control-group > header b { font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", sans-serif; }
.responsive-control-group > header small { color: #237b38; }
.responsive-text-toolbar input[type="number"],
.responsive-text-toolbar select { border-color: var(--lab-line); border-radius: 9px; background: #fff; color: var(--lab-ink); }
.responsive-text-toolbar input[type="range"] { accent-color: var(--lab-accent); }
.responsive-text-toolbar output,
.responsive-text-hint { color: var(--lab-muted); }
.responsive-frame-nav { border-color: var(--lab-line); background: rgb(255 255 255 / 94%); color: var(--lab-accent); }
.responsive-frame-nav:hover,
.responsive-frame-nav:focus-visible { border-color: var(--lab-accent); color: var(--lab-accent-hover); }
.review-status-toast { border-color: #a9cef3; background: #eef6ff; color: #174f84; }
.identity-preview-panel > header span { color: var(--lab-accent); }
.identity-draft-note { border-color: #b8d7f6; background: var(--lab-soft); color: #174f84; }
.identity-preview-panel > nav button.active { background: var(--lab-accent); color: #fff; }

.identity-density-grid button.active { border-color: var(--lab-accent); background: var(--lab-soft); }

@media (max-width: 1180px) {
  .responsive-lab-toolbar { grid-template-columns: 1fr; grid-template-rows: auto auto; }
  .responsive-device-switcher { justify-self: center; }
  .responsive-lab-actions { justify-self: center; }
}
@media (max-width: 820px) {
  .responsive-lab-toolbar {
    min-height: 0;
    padding: 10px 12px 12px;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 9px;
  }
  .responsive-device-switcher { grid-column: 1; grid-row: 1; max-width: 100%; overflow-x: auto; }
  .responsive-lab-actions { grid-column: 1; grid-row: 2; width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .responsive-lab-actions > button,
  .responsive-lab-actions .identity-panel-trigger { min-width: 0; min-height: 44px; padding: 6px 9px; white-space: normal; }
  .responsive-lab-actions .responsive-surface-switch { min-width: 0; grid-column: 1 / -1; }
  .responsive-lab-actions .responsive-surface-switch button { min-width: 0; width: 50%; }
  .responsive-lab-actions > a { display: none; }
  .responsive-text-toolbar { max-height: 43dvh; padding: 9px; grid-template-columns: minmax(0, 1fr); overflow: auto; }
  .responsive-control-group { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 9px; }
  .responsive-control-group > header { grid-column: 1 / -1; padding: 0 0 8px; border-right: 0; border-bottom: 1px solid var(--lab-line); }
  .responsive-control-group > label { min-width: 0; justify-content: space-between; }
  .responsive-control-group > label:has(select),
  .motion-controls > label:first-of-type { grid-column: 1 / -1; }
  .responsive-text-toolbar input[type="range"] { width: min(100%, 110px); }
  .responsive-text-hint { min-width: 0; padding: 8px; text-align: center; }
}
@media (max-width: 430px) {
  .responsive-device-switcher button { width: 42px; }
  .responsive-lab-actions > button { font-size: 11px; }
}

/* The administration UI is always OSeed. Initiative themes only affect the
   public preview rendered inside the review stage. */
.web-manager-embedded {
  --os-preview-accent: #0071e3;
  --os-preview-background: #f2f2f7;
  --os-preview-foreground: #1d1d1f;
  --os-preview-muted: #6e6e73;
}
.web-manager-embedded .eyebrow,
.web-manager-embedded .os-brand small{ color: #0071e3 !important; }
.web-manager-embedded .os-page h1,
.web-manager-embedded .os-page h2,
.web-manager-embedded .os-page h3 { text-transform: none; }

/* El administrador nunca hereda el tema negro/rojo de una iniciativa. Los
   colores de marca solo se aplican dentro de la previsualización pública. */
.web-manager-embedded .red-button,
.web-manager-embedded .editor-form button[type="submit"],
.web-manager-embedded .publication-filters button.active,
.web-manager-embedded .slot-row article.filled{
  border-color: #0071e3 !important;
  background: #0071e3 !important;
  color: #fff !important;
}
.web-manager-embedded .eyebrow,
.web-manager-embedded .empty-state a,
.web-manager-embedded .workflow i,
.web-manager-embedded .legal-action-editor > header span,
.web-manager-embedded .action-catalog span { color: #0071e3 !important; }
.web-manager-embedded .editor-form input:focus,
.web-manager-embedded .editor-form textarea:focus,
.web-manager-embedded .editor-form select:focus{ border-color: #0071e3; box-shadow: 0 0 0 3px rgb(0 113 227 / 16%); }
.preview-text-editing [data-preview-edit-key] { outline-color: rgb(0 113 227 / 60%); }
.preview-text-editing [data-preview-selected="true"],
.preview-text-editing [data-preview-edit-key]:focus,
.preview-text-editing .magazine-page[data-preview-selected="true"] { outline-color: var(--brand-accent, #0071e3) !important; }

/* Superficie real de la imagen: permite seleccionarla y mover su encuadre
   sobre el propio lienzo. Un margen de recorte hace perceptibles Fondo X/Y. */
.publication-background-target { position:absolute; z-index:0; inset:0; border:0; background:transparent; pointer-events:none; }
.preview-text-editing .publication-background-target { pointer-events:auto; cursor:move; }
.magazine-shell .magazine-page::before { background-size:120% auto; }
@media(max-width:760px){.magazine-shell .magazine-page::before{background-size:auto 120%;}}

/* El inspector no roba altura al lienzo: flota junto al formato que se revisa.
   Cada control conserva su agrupación y puede desplazarse dentro del panel. */
.responsive-lab.text-editing { grid-template-rows: auto minmax(0, 1fr); }
.responsive-lab.text-editing .responsive-text-toolbar {
  position: absolute;
  z-index: 24;
  top: 76px;
  right: 16px;
  width: min(440px, calc(100% - 32px));
  max-height: calc(100dvh - 92px);
  grid-template-columns: minmax(0, 1fr);
  overflow: auto;
  padding: 10px;
  border: 1px solid var(--lab-line);
  border-radius: 14px;
  box-shadow: 0 16px 42px rgb(29 29 31 / 16%);
}
.responsive-lab.text-editing .responsive-control-group { min-width: 0; }
.responsive-lab.text-editing .responsive-lab-stage { padding-top: 18px; }
@media (max-width: 820px) {
  .responsive-lab.text-editing .responsive-text-toolbar {
    top: auto;
    right: 8px;
    bottom: 8px;
    left: 8px;
    width: auto;
    max-height: min(46dvh, 420px);
    border-radius: 14px;
  }
}

/* El formato elegido siempre se contempla completo. En pantallas estrechas
   el lienzo puede hacerse más pequeño, pero no se ancla a un borde. */
.responsive-lab-stage { min-width: 0; min-height: 0; }
.responsive-frame-holder { margin: auto; }

/* Ritmo y contención del editor: ninguna pantalla queda pegada al borde ni
   permite que un campo se salga de su tarjeta al reducir el viewport. */
.web-manager-embedded .os-page {
  width: min(1180px, calc(100% - clamp(32px, 6vw, 72px)));
  margin-inline: auto;
  padding-block: clamp(32px, 4vw, 64px) 48px;
}
.web-manager-embedded .showcase-toolbar { margin: 0 0 24px; }
.web-manager-embedded .legal-action-editor article,
.web-manager-embedded .legal-action-editor form {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto auto;
}
.web-manager-embedded .legal-action-editor form { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) auto; }
.web-manager-embedded .legal-action-editor label,
.web-manager-embedded .legal-action-editor input { min-width: 0; }
.web-manager-embedded .legal-action-editor input { width: 100%; }
@media (max-width: 980px) {
  .web-manager-embedded .legal-action-editor article,
  .web-manager-embedded .legal-action-editor form { grid-template-columns:repeat(2, minmax(0, 1fr)); }
  .web-manager-embedded .legal-action-editor article button,
  .web-manager-embedded .legal-action-editor form button { width:100%; }
}
@media (max-width: 560px) {
  .web-manager-embedded .os-page { width: min(100% - 28px, 1180px); padding-block:28px 36px; }
  .web-manager-embedded .legal-action-editor article,
  .web-manager-embedded .legal-action-editor form { grid-template-columns:1fr; }
}

/* Paginación: el imán (scroll-snap) sirve para el táctil y para recolocar; mientras el código
   anima un paso se desactiva para que no se peleen. Sin desplazamiento suave nativo: la
   animación la marca el paginador. */
.magazine-levels,.magazine-row{scroll-behavior:auto}
.magazine-levels[data-animating],.magazine-row[data-animating]{scroll-snap-type:none!important}
/* Logotipo de color sin versión para fondo oscuro: en blanco sobre la revista. */
.floating-brand--white{filter:brightness(0) invert(1)}
/* Textos de la revista con la tipografía de texto de la marca (antes, fija de otra marca). */
.magazine-shell .body-copy,.magazine-shell .public-legal-footer,.magazine-shell .public-legal-footer a,.public-empty .public-legal-footer a{font-family:var(--brand-body,var(--font-mono))}
/* Texto de los botones principales con el color «sobre la marca» de la identidad. */
.magazine-shell .primary-cta{color:var(--on-accent,#fff)}

/* ——— Diseños del menú de secciones (Web Manager · Secciones y menú) ——— */
.magazine-shell .level-menu{position:fixed;z-index:20;display:flex;font-family:var(--brand-heading,var(--font-heading))}
.magazine-shell .level-menu button{border:0;background:transparent;color:var(--brand-muted,#c3c4bf);font:inherit;cursor:pointer;display:flex;align-items:baseline;gap:8px;padding:6px 2px;text-transform:uppercase;letter-spacing:.06em}
.magazine-shell .level-menu button small{font:500 10px var(--brand-auxiliary,var(--font-mono));letter-spacing:.1em;opacity:.7}
.magazine-shell .level-menu button.active,.magazine-shell .level-menu button:hover,.magazine-shell .level-menu button:focus-visible{color:var(--brand-foreground,#fff)}
.magazine-shell .level-menu button:disabled{opacity:.35;cursor:default}
.magazine-shell .level-menu--bar{top:clamp(28px,5vw,62px);right:clamp(28px,5vw,72px);gap:clamp(14px,2.4vw,32px);font-size:13px;transform:translate(var(--template-menu-x,0),var(--template-menu-y,0)) scale(var(--template-menu-scale,1));transform-origin:right top}
.magazine-shell .level-menu--bar button.active{box-shadow:inset 0 -2px 0 var(--brand-accent,#ed101b)}
.magazine-shell .level-menu--index{left:50%;bottom:calc(46px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);gap:clamp(12px,3vw,40px);padding:8px 16px;font-size:11px;background:color-mix(in srgb,var(--brand-background,#000) 55%,transparent);backdrop-filter:blur(8px);border-radius:999px;max-width:calc(100vw - 32px);overflow-x:auto;scrollbar-width:none}
.magazine-shell .level-menu--index button{white-space:nowrap}
.magazine-shell .level-menu--index button.active small{color:var(--brand-accent,#ed101b);opacity:1}
.magazine-shell .level-menu-toggle{position:fixed;z-index:31;top:clamp(28px,5vw,62px);right:clamp(28px,5vw,72px);padding:10px 16px;border:1px solid currentColor;border-radius:999px;background:transparent;color:var(--brand-foreground,#fff);font:600 12px var(--brand-heading,var(--font-heading));letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.magazine-shell .level-menu--overlay{inset:0;z-index:30;flex-direction:column;justify-content:center;gap:clamp(4px,1.5vh,16px);padding:clamp(24px,8vw,120px);background:color-mix(in srgb,var(--brand-background,#000) 94%,transparent);backdrop-filter:blur(12px)}
.magazine-shell .level-menu--overlay button{font-size:clamp(34px,7vw,88px);font-weight:600;letter-spacing:-.01em;line-height:1;text-transform:none;gap:clamp(10px,2vw,24px)}
.magazine-shell .level-menu--overlay button small{font-size:12px}
.magazine-shell .level-menu--overlay button.active{color:var(--brand-accent,#ed101b)}
@media(max-width:760px){.magazine-shell .level-menu--bar,.magazine-shell .level-menu--index{top:26px;bottom:auto;left:auto;right:16px;transform:none;gap:12px;padding:4px 10px;font-size:10px;max-width:calc(100vw - 110px);overflow-x:auto;scrollbar-width:none}.magazine-shell .level-menu--bar{padding:0}.magazine-shell .level-menu-toggle{top:22px;right:16px}}
