:root{--blue:#174ea6;--blue-dark:#0f3a7a;--blue-soft:#e8f0fe;--text:#202124;--muted:#5f6368;--footer:#111318;--yellow:#fbbc04}
*{box-sizing:border-box}
body{margin:0;color:var(--text);background:#f6f8fc;font-family:Georgia,"Times New Roman",serif}
img{display:block;max-width:100%;height:auto}
header,main,footer{width:100%}
.site-header{background:#fff;border-bottom:1px solid #d9e0ea}
.top-strip{background:var(--blue-dark);color:#fff;font-family:"Source Code Pro",monospace}
.navbar{background:#fff}
.brand{display:flex;align-items:center;gap:.6rem;font-family:Helvetica,Arial,sans-serif;font-size:1.2rem;color:var(--text)}
.brand-logo{width:180px;height:auto}
.navbar-nav .nav-link{font-family:"Source Code Pro",monospace;color:var(--text);font-weight:600;text-transform:uppercase;font-size:.92rem}
.navbar-nav .nav-link:hover,.navbar-nav .nav-link:focus,.navbar-nav .nav-link.active{color:var(--blue)}
.topic-ribbon{background:var(--blue-soft);border-top:1px solid #d9e0ea;border-bottom:1px solid #d9e0ea}
.topic-list{list-style:none;margin:0;padding:.8rem 0;display:flex;gap:1.25rem;overflow:auto;white-space:nowrap;font-family:"Source Code Pro",monospace;font-size:.9rem}
.topic-list li{padding:0 .25rem}
.news-panel,.article-shell,.custom-shell,.preview-card{background:#fff;border:1px solid #d9e0ea}
.section-heading h2,.story-copy h3,.mini-story h3,.card-story h3,.article-title,.footer-title,.widget-title,.preview-title{margin:0;font-family:Helvetica,Arial,sans-serif}
.section-heading p,.story-source,.meta-line,.preview-meta{color:var(--muted);font-size:.95rem}
.lead-story{display:grid;gap:1rem}
.story-image{width:100%;border:1px solid #d9e0ea}
.story-copy h3{font-size:2rem;line-height:1.15;margin:.35rem 0 .55rem}
.quick-stack{height:100%}
.mini-story{display:flex;gap:.8rem;padding:.85rem 0;border-top:1px solid #e3e7ef}
.mini-story:first-of-type{border-top:0}
.mini-thumb{width:120px;flex:0 0 120px;border:1px solid #d9e0ea}
.mini-story h3{font-size:1.05rem;line-height:1.25}
.card-story{background:#fff}
.card-thumb{width:100%;border:1px solid #d9e0ea;margin-bottom:.65rem}
.card-story h3{font-size:1.1rem;line-height:1.25;margin:.25rem 0 .45rem}
.article-layout{display:grid;gap:1.5rem}
.article-title{font-size:2.45rem;line-height:1.12;margin:.2rem 0 1rem}
.article-summary{font-size:1.1rem;line-height:1.7;background:var(--blue-soft);border-left:4px solid var(--blue);padding:1rem}
.article-meta{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;color:var(--muted)}
.article-feature{margin:1rem 0}
.article-feature img{width:100%;border:1px solid #d9e0ea}
.article-body h2{font-family:Helvetica,Arial,sans-serif;font-size:1.35rem;margin:1.5rem 0 .6rem}
.article-body p{font-size:1.06rem;line-height:1.8;margin:0 0 1rem}
.pdf-box,.info-box{background:var(--blue-soft);border:1px solid #c8d5f3;padding:1rem;margin-bottom:1rem}
.pdf-button,.newsletter-button,.reset-button{display:inline-block;width:100%;border:1px solid var(--yellow);background:var(--yellow);color:#111;font-family:Helvetica,Arial,sans-serif;font-weight:700;padding:.75rem 1rem}
.custom-shell{padding:1rem}
.custom-columns{font-size:0}
.form-side,.preview-zone{display:inline-block;vertical-align:top;font-size:16px}
.form-side{width:24%;background:#eef4ff;border:1px solid #d9e0ea;padding:1rem}
.preview-zone{width:52%;padding:0 1rem}
.form-side.right{background:#f7f0f2}
.widget-group{background:#fff;border:1px solid #d9e0ea;padding:1rem;margin-bottom:1rem}
.widget-title{font-size:1.1rem;margin-bottom:.75rem}
.form-label,.form-check-label{font-family:Helvetica,Arial,sans-serif;font-size:.95rem}
.form-control,.form-select,.form-range{border-radius:0}
.preview-card{padding:1rem;max-height:70vh;overflow:auto}
.preview-title{font-size:1.6rem;line-height:1.2;margin:.25rem 0 .75rem}
.preview-card p{line-height:1.7}
.site-footer{background:var(--footer);color:#fff}
.footer-title{color:var(--yellow);font-size:1.2rem;margin-bottom:.85rem}
.footer-list{list-style:none;padding:0;margin:0}
.footer-list li{margin:0 0 .45rem}
.social-row{display:flex;gap:.75rem;align-items:center}
.social-icon{width:28px;height:28px}
.newsletter-input{width:100%;border:1px solid #3a3f4a;background:#fff;color:#111;padding:.7rem .8rem}
.footer-bottom{border-top:1px solid #2a2f3a;color:#d4d7dd;font-size:.95rem}
small.code-note{font-family:"Source Code Pro",monospace;color:var(--muted)}