:root{--paper:#f8f4eb;--ink:#2d2b26;--muted:#756f63;--rule:#d9d1c1;--accent:#885331;--soft:#eee6d6;--error:#8b352d;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--body-size:1rem;--article-size:1.0625rem;color-scheme:light;font-family:var(--sans);background:var(--paper);color:var(--ink);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0}button,input,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{color:inherit}a{color:inherit}p,h1,h2,h3{margin:0}button{border:0;background:none}a{text-underline-offset:4px}[hidden]{display:none!important}.page{max-width:1440px;margin:auto;padding:0 56px}.skip{position:absolute;top:-100px;left:20px;background:var(--ink);color:var(--paper);padding:14px;z-index:3}.skip:focus{top:10px}
.utility{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 0 17px;font-size:0.75rem;color:var(--muted);border-bottom:1px solid var(--ink)}.local-label{display:flex;align-items:center;gap:7px}.local-dot{width:6px;height:6px;border-radius:50%;background:#65705a}.masthead{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:27px 0 30px;border-bottom:3px solid var(--ink)}h1{font:500 clamp(2.375rem,calc(5.2vw * var(--text-scale)),4.8125rem)/1.05 var(--serif);letter-spacing:-3px;text-align:center}.masthead-dot{color:var(--accent)}.masthead-note{font-size:0.75rem;line-height:1.6;color:var(--muted);min-width:88px}.masthead-seal{font:italic 1.5625rem/1 var(--serif);width:52px;height:52px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;margin-left:36px;flex-shrink:0}.toolbar{min-height:66px;border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:21px}.nav-button{font-size:0.8125rem;min-height:44px;padding:0;font-weight:600}.toolbar-spacer{flex:1}.font-button{height:38px;width:43px;border:1px solid var(--rule);font:1.25rem var(--serif);border-radius:var(--control-radius)}.font-button[aria-pressed=true]{background:var(--soft);border-color:var(--accent)}.upload-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:11px 16px;font-size:0.8125rem;border-radius:var(--control-radius);min-height:42px;line-height:1.3}.upload-button:hover{background:#494336}.upload-button span{font-size:1.25rem;line-height:1}.feedback{padding:13px 16px;margin-top:20px;background:var(--soft);border-left:3px solid var(--accent);font-size:0.875rem;line-height:1.5;overflow-wrap:anywhere}.feedback.error{border-color:var(--error);color:var(--error)}.loading{padding:100px 0;text-align:center;color:var(--muted)}
.reader{display:grid;grid-template-columns:210px minmax(0,1fr);gap:46px;padding-top:35px}.sidebar{border-right:1px solid var(--rule);padding-right:28px}.sidebar-inner{position:sticky;top:28px}.edition-marker{font-size:0.6875rem;color:var(--accent);margin-bottom:10px}.sidebar-date{font:1.5rem/1.2 var(--serif);letter-spacing:-.5px}.reading-time{font-size:0.75rem;color:var(--muted);margin-top:9px}.sidebar-divider{height:1px;background:var(--rule);margin:25px 0}.sidebar-heading{font-size:0.75rem;font-weight:500;margin-bottom:13px}.section-nav{display:flex;flex-direction:column;gap:5px}.section-nav a{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:10px 0;text-decoration:none;font-size:0.8125rem;line-height:1.4}.section-nav a:hover{color:var(--accent)}.section-nav a span{font-size:0.6875rem;color:var(--muted)}.archive{margin-top:30px;border-top:1px solid var(--rule);padding-top:14px}.archive-heading{display:flex;justify-content:space-between;align-items:center;font-size:0.75rem;min-height:35px;list-style:none;cursor:pointer}.archive-heading::-webkit-details-marker{display:none}.archive:not([open]) .archive-heading span{transform:rotate(-90deg)}.archive-list{display:flex;flex-direction:column;gap:5px;margin-top:8px;max-height:350px;overflow-y:auto}.archive-date{display:flex;align-items:center;justify-content:space-between;gap:8px;text-align:left;font-size:0.8125rem;padding:10px 9px;border-radius:var(--control-radius);min-height:42px}.archive-date[aria-pressed=true]{background:var(--soft);color:var(--accent)}.archive-date span{font-size:0.6875rem;color:var(--muted)}.sidebar-note{font-size:0.6875rem;line-height:1.7;color:var(--muted);margin-top:28px}.edition-top{display:flex;justify-content:space-between;gap:12px;font-size:0.6875rem;color:var(--muted);padding:1px 0 20px;border-bottom:1px solid var(--rule)}.freshness{font-size:0.8125rem;line-height:1.5;background:var(--soft);padding:12px 15px;margin-top:20px}.intro{padding:26px 0 30px}.intro-label{font-size:0.75rem;color:var(--accent);display:flex;align-items:center;gap:8px}.small-sun{font-size:1.3125rem;line-height:1}.daily-headline{font:1.5rem/1.45 var(--serif);letter-spacing:-.3px;margin-top:15px;max-width:850px;text-wrap:pretty;overflow-wrap:anywhere}.updated-at{font-size:0.6875rem;color:var(--muted);margin-top:16px}.news-section{scroll-margin-top:24px;margin-bottom:34px}.section-heading{display:flex;align-items:baseline;gap:12px;border-top:2px solid var(--ink);padding-top:13px;margin-bottom:6px}.section-heading h2{font:1.625rem/1.3 var(--serif);letter-spacing:-.6px;overflow-wrap:anywhere}.section-heading span{font-size:0.6875rem;color:var(--muted);flex-shrink:0}.articles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}.article{padding:23px 0 24px;border-bottom:1px solid var(--rule);min-width:0}.article h3{font:1.5625rem/1.2 var(--serif);letter-spacing:-.5px;text-wrap:pretty;overflow-wrap:anywhere}.news-section:first-child .article h3{font-size:2rem;line-height:1.15}.article-text{font-size:var(--article-size);line-height:1.65;color:#554f44;margin-top:14px;white-space:pre-wrap;overflow-wrap:anywhere}.article-meta{margin-top:17px;font-size:0.6875rem;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}.source-link{display:inline-flex;align-items:center;min-height:35px;font-size:0.75rem;color:var(--accent);text-decoration:none;gap:8px}.source-link:hover{text-decoration:underline}.news-image{width:100%;height:auto;max-height:280px;object-fit:cover;display:block;margin:0 0 18px;border-radius:2px}.disclosure{margin-top:13px;color:var(--accent);font-size:0.75rem;padding:7px 0;min-height:35px;text-align:left;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.article-text.collapsed{margin-bottom:0}.edition-end{text-align:center;border-top:1px solid var(--ink);padding:34px 0 25px;margin-top:12px}.end-ornament{color:var(--accent);font-size:1.625rem}.edition-end p{font:1.5rem/1.4 var(--serif);margin:12px 0 5px}.edition-end>span:last-of-type{font-size:0.75rem;color:var(--muted)}.back-top{display:block;margin:19px auto 0;font-size:0.75rem;min-height:40px;color:var(--accent)}.page-footer{border-top:1px solid var(--rule);margin-top:40px;padding:20px 0 28px;display:flex;justify-content:space-between;gap:14px;font-size:0.6875rem;color:var(--muted)}.page-footer span:first-child{font-family:var(--serif);font-size:0.9375rem}.empty{padding:68px 15px 82px;text-align:center}.empty-symbol{font:italic 2rem var(--serif);margin:0 auto 25px;border:1px solid var(--rule);width:70px;height:70px;border-radius:50%;display:grid;place-items:center}.eyebrow{font-size:0.75rem;color:var(--accent);margin-bottom:18px}.empty h2{font:2.75rem/1.1 var(--serif);letter-spacing:-1.4px}.empty>p:not(.eyebrow){font-size:0.9375rem;line-height:1.7;color:var(--muted);margin:20px 0 24px}.no-items{font-size:0.9375rem;line-height:1.7;padding:35px 0;color:var(--muted)}
@media(min-width:1400px){.page{padding-left:68px;padding-right:68px}.reader{gap:54px}}
@media(max-width:1050px){.page{padding:0 30px}.reader{grid-template-columns:175px minmax(0,1fr);gap:28px}.sidebar{padding-right:20px}.masthead-note{min-width:70px}.masthead-seal{margin-left:14px}.articles{column-gap:24px}.article h3{font-size:1.4375rem}.news-section:first-child .article h3{font-size:1.75rem}.daily-headline{font-size:1.375rem}}
/* Mobile reading: compact newspaper chrome, one column, comfortable touch targets. */
.upload-button .upload-caption{font-size:0.8125rem;line-height:1.3}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,summary{touch-action:manipulation}
.main,.sidebar,.sidebar-inner{min-width:0}
@media(max-width:760px){
  .page{max-width:660px;padding:0 max(20px,env(safe-area-inset-right)) 0 max(20px,env(safe-area-inset-left))}
  .utility{font-size:0.6875rem;padding:13px 0 12px;gap:10px}
  .masthead{justify-content:center;padding:18px 0 20px;border-bottom-width:2px}
  .masthead-note,.masthead-seal{display:none}
  h1{font-size:clamp(1.8125rem,calc(7.7vw * var(--text-scale)),3rem);letter-spacing:-1.2px;line-height:1.1}
  .toolbar{display:grid;grid-template-columns:minmax(0,1fr) 44px auto;gap:10px;min-height:64px;padding:10px 0}
  .toolbar-spacer{display:none}
  .nav-button{text-align:left;font-size:0.8125rem;line-height:1.4;min-height:44px}
  .font-button{width:44px;height:44px}
  .upload-button{min-height:44px;padding:10px 12px}
  .reader{display:block;padding-top:16px}
  .sidebar{border-right:0;padding:0;margin-bottom:16px}
  .sidebar-inner{position:static;display:block}
  .edition-marker,.sidebar-date,.sidebar-divider,.sidebar-heading,.sidebar-note,.reading-time{display:none}
  .section-nav{flex-direction:row;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding:4px 2px 12px;scroll-padding:2px;scrollbar-width:thin}
  .section-nav a{flex-shrink:0;justify-content:center;gap:7px;min-height:44px;padding:9px 11px;border:1px solid var(--rule);border-radius:3px;font-size:0.75rem;white-space:nowrap}
  .archive{margin:0;padding:0;border-top:0;border-bottom:1px solid var(--rule)}
  .archive-heading{min-height:44px;font-size:0.75rem}
  .archive-list{flex-direction:row;flex-wrap:wrap;gap:6px;margin:0 0 12px;max-height:200px}
  .archive-date{min-height:44px;font-size:0.8125rem;padding:10px}
  .edition-top{flex-wrap:wrap;gap:5px 12px;font-size:0.6875rem;line-height:1.5;padding:0 0 14px}
  #edition-count{white-space:nowrap}
  .freshness{margin-top:15px;padding:11px 12px}
  .intro{padding:19px 0 23px}
  .intro-label{font-size:0.75rem}
  .daily-headline{font-size:1.25rem;line-height:1.5;letter-spacing:-.15px;margin-top:12px}
  .updated-at{font-size:0.6875rem;line-height:1.5;margin-top:12px}
  .news-section{margin-bottom:27px}
  .section-heading{justify-content:space-between;gap:10px;padding-top:12px}
  .section-heading h2{font-size:1.5625rem;line-height:1.25;min-width:0}
  .section-heading span{font-size:0.6875rem;white-space:nowrap}
  .articles{display:block}
  .article{padding:20px 0 22px}
  .article h3,.news-section:first-child .article h3{font-size:1.625rem;line-height:1.2;letter-spacing:-.4px}
  .article-text{font-size:var(--article-size);line-height:1.65;margin-top:12px}
  .article-meta{font-size:0.75rem;line-height:1.6;margin-top:14px}
  .source-link,.disclosure{min-height:44px;font-size:0.8125rem}
  .disclosure{margin-top:5px}
  .news-image{max-height:300px;margin-bottom:15px}
  .edition-end{padding:27px 0 18px}
  .edition-end p{font-size:1.5rem}
  .edition-end>span:last-of-type{display:block;line-height:1.6}
  .back-top{min-height:44px;font-size:0.8125rem;margin-top:12px}
  .page-footer{margin-top:22px;padding-bottom:max(22px,env(safe-area-inset-bottom));align-items:center;flex-wrap:wrap;gap:8px;font-size:0.6875rem}
  .empty{padding:42px 0 50px}
  .empty h2{font-size:2.125rem;line-height:1.15}
}
@media(max-width:420px){
  .page{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .toolbar{grid-template-columns:minmax(0,1fr) 44px 44px}
  #upload-button{width:44px;padding:0}
  #upload-button>span:first-child{font-size:1.5625rem}
  #upload-button .upload-caption{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .daily-headline{font-size:1.1875rem}
  .article h3,.news-section:first-child .article h3{font-size:1.5625rem}
  .section-heading h2{font-size:1.4375rem}
  .section-nav a{padding:9px 10px}
  .local-label{gap:5px;font-size:0.625rem}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Hosted reader: the server reads Drive; file management stays in Drive. */
@media(max-width:760px){.toolbar{grid-template-columns:minmax(0,1fr) 44px}}

/* One reading scale applies to every text style, including responsive headings. */
:root{--text-scale:1;font-size:100%}
html[data-reading-size="100"]{--text-scale:1;font-size:100%}
html[data-reading-size="110"]{--text-scale:1.1;font-size:110%}
html[data-reading-size="120"]{--text-scale:1.2;font-size:120%}
html[data-reading-size="130"]{--text-scale:1.3;font-size:130%}
html[data-reading-size="140"]{--text-scale:1.4;font-size:140%}
html[data-reading-size="150"]{--text-scale:1.5;font-size:150%}
html[data-reading-size="160"]{--text-scale:1.6;font-size:160%}
html[data-reading-size="170"]{--text-scale:1.7;font-size:170%}
html[data-reading-size="180"]{--text-scale:1.8;font-size:180%}
html[data-reading-size="190"]{--text-scale:1.9;font-size:190%}
html[data-reading-size="200"]{--text-scale:2;font-size:200%}

/* Give the edition refresh a visible, quiet button treatment. */
.nav-button{padding:10px 14px;border:1px solid var(--rule);border-radius:var(--control-radius);background:var(--soft);text-align:center;line-height:1.4}
.nav-button:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:760px){.nav-button{justify-self:start;max-width:100%;padding:10px 12px}}

/* Stage A: shared navigation, leaving the newspaper reader intact. */
.site-nav{display:flex;flex-wrap:wrap;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--rule)}
.site-nav a{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:8px 10px;color:var(--muted);font-size:.8125rem;text-decoration:none;border-radius:3px}
.site-nav a[aria-current]{background:var(--soft);color:var(--ink)}
.site-nav a:hover{color:var(--accent)}
.site-nav small{font-size:.6875rem;color:var(--muted)}
.route-panel{max-width:780px;padding:36px 0 70px;min-height:260px}
.route-panel h2{font:500 2rem/1.2 var(--serif);margin-bottom:16px}
.route-panel p{color:var(--muted);font-size:1rem;line-height:1.7;margin-bottom:18px}
.route-panel>a{display:inline-flex;align-items:center;min-height:44px;margin-right:18px;font-size:.875rem;color:var(--accent)}
#route-archive .archive{margin-top:20px;max-width:380px}
#route-font-button{display:block;margin-top:16px}
@media(max-width:760px){.site-nav{gap:3px 6px}.site-nav a{padding:8px;font-size:.8125rem}.route-panel{padding:26px 0 45px}.route-panel h2{font-size:1.75rem}}

/* Stage B: existing newspaper cards, with full supplied descriptions. */
.route-panel.is-feed{max-width:none}
.loading.is-refresh{padding:12px 0;font-size:.875rem}
.archive-empty{font-size:.8125rem;line-height:1.7;color:var(--muted);margin:12px 0}
.feed .section-heading h3{font:500 1.625rem/1.3 var(--serif);letter-spacing:-.6px;overflow-wrap:anywhere}
.feed-title{font:500 1.5625rem/1.2 var(--serif);letter-spacing:-.5px;overflow-wrap:anywhere;text-wrap:pretty;margin:0}
.feed-news-link{color:var(--ink);text-decoration:none}
.feed-news-link:hover{text-decoration:underline;text-decoration-thickness:1px}
.feed-card .feed-date{font-size:.75rem;color:var(--muted);margin:14px 0 0;line-height:1.6}
.feed-card .article-meta{font-size:.6875rem;margin-top:6px}
.feed .article-text{font-size:var(--article-size);line-height:1.65;margin:14px 0 0;color:#554f44}
.feed-empty{line-height:1.7;padding:20px 0;color:var(--muted)}
.route-panel.is-news{min-height:0;padding-bottom:32px}
.is-news h2{overflow-wrap:anywhere;text-wrap:pretty}
.news-content{border-top:2px solid var(--ink);padding-top:14px;margin-bottom:18px}
.news-content .news-section-label{font-family:var(--serif);font-size:1.125rem;color:var(--ink);margin:0 0 6px}
.news-content .news-date{font-size:.75rem;margin:0 0 20px}
.news-content .article-text{font-size:var(--article-size);line-height:1.65;color:#554f44;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 18px}
.news-content .article-meta{font-size:.75rem;overflow-wrap:anywhere;margin:0 0 8px}
.news-content .source-link{min-height:44px}
@media(max-width:760px){.feed-title{font-size:1.5625rem}.feed .section-heading h3{font-size:1.4375rem}}

/* Stage E: an explicit, local placeholder for unavailable personalization. */
.ai-open,.ai-close{min-height:44px;padding:11px 16px;border:1px solid var(--rule);border-radius:var(--control-radius);background:var(--soft);font-size:.875rem;line-height:1.5;text-align:left}
.ai-open{display:block;margin:0 0 20px}
.ai-dialog{width:min(32rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;margin:auto;padding:clamp(20px,4vw,32px);border:1px solid var(--ink);background:var(--paper);color:var(--ink)}
.ai-dialog::backdrop{background:rgba(45,43,38,.4)}
.ai-dialog h2{font:500 1.75rem/1.2 var(--serif);letter-spacing:-.5px;border-top:2px solid var(--ink);padding-top:16px;overflow-wrap:anywhere;text-wrap:pretty}
.ai-dialog p{font-size:1rem;line-height:1.7;color:var(--muted);margin:18px 0 24px;overflow-wrap:anywhere}
.ai-close{text-align:center}

/* Stage F: comfortable targets retain the existing newspaper layout. */
.font-button{width:44px;height:44px;flex-shrink:0}
.source-link,.disclosure,.back-top,.archive-heading,.archive-date,.section-nav a,.upload-button{min-height:44px}
.feed-news-link{display:inline-block;min-height:44px}

/* G1: the desktop sidebar keeps its original boxes and sticky container. */
.edition-tools{display:contents}
.edition-tools-heading{display:none}
@media(max-width:760px){
  .utility{padding-top:8px;padding-bottom:7px}
  .masthead{padding-top:12px;padding-bottom:12px}
  .site-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:6px 0}
  .site-nav a{min-width:0;flex-direction:column;justify-content:center;gap:0;padding:5px 4px;line-height:1.3;text-align:center;overflow-wrap:normal}
  .toolbar{min-height:56px;padding:6px 0}
  .route-panel{padding-top:14px;padding-bottom:32px}
  .route-panel.is-feed>h2{font-size:1.5rem;margin-bottom:10px}
  .feed .section-heading{padding-top:10px;margin-bottom:0}
  .feed .news-section{margin-bottom:24px}
  .feed .article{padding-top:16px;padding-bottom:18px}
  .feed .article-text{margin-top:10px}
  .feed-card .feed-date{margin-top:10px}
  .feed-card .article-meta{margin:4px 0}
  .reader{padding-top:8px}
  .sidebar{margin-bottom:10px}
  .edition-tools{display:block}
  .edition-tools-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;min-height:44px;border-bottom:1px solid var(--rule);font-size:.8125rem;line-height:1.4;cursor:pointer}
  .edition-tools-heading::-webkit-details-marker{display:none}
  .edition-tools[open]>.edition-tools-heading{margin-bottom:8px}
  .edition-tools[open]>.edition-tools-heading span{transform:rotate(180deg)}
  .section-nav{flex-wrap:wrap;overflow:visible;padding:4px 0 8px;gap:6px}
  .section-nav a{flex:1 1 auto;max-width:100%;white-space:normal;text-align:left;justify-content:space-between}
  .intro{padding-top:16px;padding-bottom:20px}
  .news-content{padding-top:12px}
  .news-content .news-date{margin-bottom:16px}
}
@media(min-width:540px) and (max-width:760px){.site-nav{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:540px) and (max-width:639px){html.large-text .site-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}

.news-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;min-width:0}
.news-actions .source-link{max-width:100%;white-space:normal;overflow-wrap:anywhere;text-align:left}
.share-button{padding:0}
.share-status{flex-basis:100%;font-size:.75rem;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.share-status:empty{display:none}
.share-url{width:100%;min-width:0;padding:10px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);font-size:.8125rem}
/* Shared rounding for buttons and navigation controls at every viewport size. */
:root { --control-radius: 9999px; }
button,
input[type="button"],
input[type="submit"],
input[type="reset"],
[role="button"],
.site-nav a,
.section-nav a,
.reading-controls select,
.archive-heading,
.edition-tools-heading {
  border-radius: var(--control-radius);
}

/* The seal keeps its printed appearance; keyboard focus remains visible. */
button.masthead-seal{cursor:default;padding:0;background:transparent;color:var(--ink)}
.admin-dialog{width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 48px);padding:28px;border:1px solid var(--rule);border-radius:8px;background:var(--paper);color:var(--ink);overflow:auto}
.admin-dialog::backdrop{background:rgb(45 43 38 / .45)}
.admin-dialog h2{font:1.8rem/1.2 var(--serif);margin-bottom:22px}
.admin-dialog label{display:block;font-size:.875rem;margin:16px 0 8px}
.admin-dialog input{display:block;width:100%;min-width:0;padding:12px;border:1px solid var(--rule);border-radius:4px;background:var(--paper);color:var(--ink);font-size:16px}
.admin-dialog input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.admin-actions{display:flex;justify-content:space-between;gap:16px;margin-top:20px}
.admin-error{color:var(--error);font-size:.875rem;line-height:1.5;margin-top:14px}
.admin-panel{width:min(680px,calc(100% - 32px))}
.admin-panel p{line-height:1.6;overflow-wrap:anywhere}
.admin-note{font-size:.875rem;color:var(--muted);margin:12px 0 24px}
.admin-panel h3{font:1.3rem var(--serif)}
.admin-panel ul{list-style:none;padding:0;margin:12px 0}
.admin-panel li{padding:16px 0;border-bottom:1px solid var(--rule)}
.admin-panel li p{font-size:.875rem;color:var(--muted);margin-top:8px}
@media(max-width:760px){
  button.masthead-seal{display:none}
}

/* Administration workspace: isolated from newspaper reading styles. */
.admin-mobile-entry{display:none}
@media(max-width:760px){.admin-mobile-entry{display:block;min-height:44px;text-decoration:underline}.page-footer{flex-wrap:wrap;align-items:center}}
.admin-panel{width:min(1160px,calc(100% - 40px));padding:0;max-height:calc(100dvh - 40px);border-radius:12px}
.admin-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-bottom:1px solid var(--rule)}
.admin-kicker{font-size:.6875rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.admin-header h2{font-size:1.75rem;margin:0}
.admin-layout{display:grid;grid-template-columns:200px minmax(0,1fr)}
.admin-sidebar{padding:20px 12px;background:var(--soft);border-right:1px solid var(--rule);display:flex;flex-direction:column;gap:5px}
.admin-sidebar button{padding:12px 14px;min-height:44px;text-align:left;border-radius:var(--control-radius);font-size:.875rem;color:var(--ink)}
.admin-sidebar button:hover{background:var(--paper)}
.admin-sidebar button[aria-current="page"]{background:var(--ink);color:var(--paper)}
.admin-sidebar-note{font-size:.75rem;color:var(--muted);padding:18px 14px}
.admin-workspace{padding:20px 28px 28px;min-width:0}
.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--rule);margin-bottom:24px}
.admin-toolbar p{font-size:.75rem;color:var(--muted)}
.admin-panel .admin-panel-error:empty,#admin-panel-error:empty{display:none}
.admin-section-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.admin-section-heading h3{font-size:1.625rem}
.admin-badge{display:inline-block;border:1px solid var(--rule);border-radius:999px;padding:5px 10px;font-size:.6875rem;color:var(--muted);line-height:1.5}
.admin-description{font-size:.875rem;color:var(--muted);margin:10px 0 24px}
.admin-panel h4{font-size:.875rem;font-weight:600;margin:24px 0 12px}
.admin-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}
.admin-metric{border:1px solid var(--rule);border-radius:8px;padding:18px;display:flex;flex-direction:column;gap:8px;min-width:0}
.admin-metric>span{font-size:.8125rem;color:var(--muted)}
.admin-metric>strong{font:2rem/1.15 var(--serif)}
.admin-metric>small{font-size:.6875rem;line-height:1.5;color:var(--muted)}
.admin-integrations{border:1px solid var(--rule);border-radius:8px;padding:0 16px;margin-bottom:24px}
.admin-integrations>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;font-size:.8125rem;border-bottom:1px solid var(--rule)}
.admin-integrations>div:last-child{border-bottom:0}
.admin-integrations strong{font-weight:400;color:var(--muted);text-align:right}
.admin-subtle{font-size:.6875rem;color:var(--muted)}
.admin-panel #admin-editions{max-height:310px;overflow:auto}
.admin-panel #admin-editions li{padding:16px 2px}
.admin-panel #admin-editions strong{font-size:.8125rem}
.admin-panel #admin-editions p{font-size:.875rem}
.admin-empty-state{padding:28px;border:1px dashed var(--rule);border-radius:8px;margin-bottom:24px}
.admin-empty-mark{font:italic 1.75rem var(--serif);color:var(--accent)}
.admin-empty-state h4{font:1.375rem/1.3 var(--serif);margin:12px 0}
.admin-empty-state p,.admin-callout p{font-size:.875rem;color:var(--muted)}
.admin-table-wrap{overflow:auto}
.admin-table{width:100%;border-collapse:collapse;font-size:.8125rem;text-align:left}
.admin-table caption{text-align:left;color:var(--muted);font-size:.75rem;margin-bottom:12px}
.admin-table th,.admin-table td{padding:14px 12px;border-bottom:1px solid var(--rule);vertical-align:top}
.admin-table th{background:var(--soft);font-weight:500;white-space:nowrap}
.admin-table td{color:var(--muted)}
.admin-disabled-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.admin-panel button:disabled{color:var(--muted);background:var(--soft);border:1px solid var(--rule);border-radius:var(--control-radius);padding:10px 14px;cursor:not-allowed;opacity:.75;min-height:44px}
.admin-fieldset{border:1px solid var(--rule);padding:18px;border-radius:8px;margin-top:24px;min-width:0}
.admin-fieldset legend{font-size:.8125rem;padding:0 8px}
.admin-fieldset input,.admin-fieldset select{width:100%;font:inherit;font-size:16px;color:var(--muted);padding:12px;border:1px solid var(--rule);border-radius:4px;background:var(--soft)}
.admin-fieldset button{margin-top:18px}
.admin-properties{margin:24px 0}
.admin-properties>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid var(--rule);font-size:.8125rem;line-height:1.6;overflow-wrap:anywhere}
.admin-properties dt{color:var(--muted)}
.admin-properties dd{margin:0}
.admin-panel .admin-topic-list li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;font-size:.875rem}
.admin-topic-list span{overflow-wrap:anywhere;min-width:0}
.admin-callout{padding:18px;border-left:3px solid var(--accent);background:var(--soft);margin-top:24px}
.admin-callout h4{margin-top:0}
.admin-panel .admin-session-log li{font-size:.8125rem;line-height:1.6;padding:12px 0}
.admin-panel :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:700px){
 .admin-panel{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:8px}
 .admin-header{padding:18px 16px;gap:12px}.admin-header h2{font-size:1.375rem}
 .admin-layout{display:block}.admin-sidebar{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--rule);padding:10px;gap:6px}
 .admin-sidebar button{white-space:nowrap;flex-shrink:0}.admin-sidebar-note{display:none}
 .admin-workspace{padding:18px 16px}.admin-toolbar{gap:8px;flex-wrap:wrap;margin-bottom:20px}
 .admin-empty-state{padding:20px}.admin-metric{padding:14px}.admin-metrics{gap:8px}
 .admin-properties>div{grid-template-columns:1fr;gap:4px}.admin-integrations>div{flex-wrap:wrap;gap:4px 12px}
 .admin-integrations strong{text-align:left}.admin-section-heading h3{font-size:1.375rem}
}
@media(max-width:380px){.admin-metrics{grid-template-columns:1fr}}

.reading-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:20px 0 12px;min-width:0}
.reading-controls select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--rule);padding:8px 14px;min-height:44px;max-width:100%}
.reading-controls select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
