/* LDCP Network — "editor's proof" design system */
:root{
  --paper:#FFFFFF; --ink:#16193A; --graphite:#5A5F73; --rule:#E1E3EB; --mist:#F3F4F8;
  --pen:#B42318; --pen-soft:#FDECEA; --ok:#1C7A4B; --ok-soft:#E6F4EC; --warn:#8A5A00; --warn-soft:#FFF4DC;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r-sm:4px; --r-md:8px;
  --wrap:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);text-rendering:optimizeLegibility}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--pen)}
:focus-visible{outline:2px solid var(--pen);outline-offset:2px;border-radius:2px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em}
h1{font-size:clamp(2.2rem,4.6vw,3.6rem)} h2{font-size:clamp(1.6rem,2.8vw,2.2rem)} h3{font-size:1.35rem}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.narrow{max-width:720px}
.muted{color:var(--graphite)}
.small{font-size:.875rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:50}
.skip:focus{left:8px}

/* ---------- Masthead ---------- */
.masthead{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:20}
.masthead .wrap{display:flex;align-items:center;gap:28px;height:68px}
.logo{display:flex;align-items:baseline;gap:10px;text-decoration:none}
.logo b{font:700 1.7rem/1 var(--serif);letter-spacing:-.02em}
.logo b i{font-style:normal;color:var(--pen)}
.logo span{font-size:.78rem;color:var(--graphite);max-width:150px;line-height:1.2}
.nav{display:flex;gap:22px;flex:1}
.nav a{text-decoration:none;font-weight:600;font-size:.94rem;color:var(--graphite)}
.nav a:hover,.nav a[aria-current]{color:var(--ink)}
.nav-right{display:flex;align-items:center;gap:12px}
.bell{position:relative;display:inline-flex;width:38px;height:38px;align-items:center;justify-content:center;border-radius:50%;text-decoration:none}
.bell:hover{background:var(--mist)}
.bell em{position:absolute;top:3px;right:2px;background:var(--pen);color:#fff;font:700 .68rem/1 var(--sans);font-style:normal;padding:3px 5px;border-radius:9px}
.menu-toggle{display:none;background:none;border:1px solid var(--rule);border-radius:var(--r-sm);padding:8px 10px;font:600 .9rem var(--sans);color:var(--ink)}
.subnav{background:var(--mist);border-bottom:1px solid var(--rule)}
.subnav .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.subnav a{padding:12px 14px;text-decoration:none;font-weight:600;font-size:.9rem;color:var(--graphite);white-space:nowrap;border-bottom:2px solid transparent}
.subnav a[aria-current]{color:var(--ink);border-bottom-color:var(--pen)}
.subnav.admin{background:var(--ink)} .subnav.admin a{color:#B9BDD3} .subnav.admin a[aria-current],.subnav.admin a:hover{color:#fff}

/* ---------- Buttons & forms ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:var(--r-sm);border:1px solid var(--ink);background:var(--ink);color:#fff;font:700 .95rem/1 var(--sans);text-decoration:none;cursor:pointer;transition:background .15s}
.btn:hover{background:#262A55;color:#fff}
.btn.ghost{background:transparent;color:var(--ink)} .btn.ghost:hover{background:var(--mist)}
.btn.pen{background:var(--pen);border-color:var(--pen)} .btn.pen:hover{background:#951b12}
.btn.ok{background:var(--ok);border-color:var(--ok)}
.btn.sm{padding:8px 12px;font-size:.85rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--pen);text-decoration:underline;cursor:pointer}
form .field{margin-bottom:18px}
label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px}
.hint{font-weight:400;color:var(--graphite);font-size:.84rem;display:block;margin-top:4px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],input[type=tel],input[type=datetime-local],input[type=search],select,textarea{
  width:100%;padding:11px 12px;border:1px solid #C9CCD8;border-radius:var(--r-sm);font:inherit;color:var(--ink);background:#fff}
input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px rgba(22,25,58,.12)}
textarea{min-height:140px;resize:vertical}
textarea.writer{font:400 1.08rem/1.75 var(--serif);min-height:520px;padding:18px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:500}
.check input{margin-top:5px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}

/* ---------- Flash, badges ---------- */
.flash{padding:12px 16px;border-radius:var(--r-sm);margin:18px 0;font-weight:600;border-left:4px solid}
.flash.success{background:var(--ok-soft);border-color:var(--ok);color:#12502F}
.flash.error{background:var(--pen-soft);border-color:var(--pen);color:#7A1810}
.flash.info{background:var(--mist);border-color:var(--ink)}
.badge{display:inline-block;padding:3px 9px;border-radius:20px;font:700 .75rem/1.4 var(--sans);background:var(--mist);color:var(--graphite);white-space:nowrap}
.badge.available,.badge.approved,.badge.paid,.badge.published,.badge.accepted,.badge.completed{background:var(--ok-soft);color:var(--ok)}
.badge.rejected,.badge.failed,.badge.cancelled{background:var(--pen-soft);color:var(--pen)}
.badge.revision_requested,.badge.more_info,.badge.claimed,.badge.processing,.badge.requested{background:var(--warn-soft);color:var(--warn)}
.badge.under_review,.badge.submitted,.badge.pending{background:#E9ECFB;color:#2B3990}

/* ---------- Hero ---------- */
.hero{padding:72px 0 88px;border-bottom:1px solid var(--rule)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(2.6rem,5.4vw,4.4rem);font-weight:500;letter-spacing:-.025em;line-height:1.02;margin-bottom:24px}
.hero .lede{font-size:1.2rem;color:var(--graphite);max-width:34em;margin-bottom:32px}
.hero .ctas{display:flex;gap:12px;flex-wrap:wrap}
.hero .fine{margin-top:22px;font-size:.86rem;color:var(--graphite);max-width:34em}

/* the proof sheet: the one bold thing */
.proof{position:relative;padding:14px 0 14px 14px}
.proof::before{content:"";position:absolute;inset:26px -10px -6px 30px;background:var(--mist);border:1px solid var(--rule);transform:rotate(2.2deg);border-radius:2px}
.sheet{position:relative;background:#fff;border:1px solid #CFD2DD;border-radius:2px;padding:34px 36px 30px 36px;box-shadow:0 1px 0 var(--rule),0 18px 40px -24px rgba(22,25,58,.35)}
.sheet .kicker{display:flex;justify-content:space-between;font-size:.8rem;color:var(--graphite);border-bottom:1px solid var(--rule);padding-bottom:12px;margin-bottom:18px}
.sheet h3{font-size:1.55rem;margin-bottom:14px}
.sheet p{font:400 1.08rem/1.75 var(--serif);margin:0}
.sheet del{text-decoration:none;color:var(--pen);background:linear-gradient(var(--pen),var(--pen)) no-repeat 0 55%/0% 2px;animation:strike .5s .9s ease-out forwards}
.sheet ins{text-decoration:none;color:var(--ok);border-bottom:2px solid var(--ok);opacity:0;animation:appear .4s 1.5s ease-out forwards}
.sheet .margin-note{margin-top:16px;font-size:.8rem;line-height:1.4;color:var(--pen);border-left:2px solid var(--pen);padding:2px 0 2px 10px;opacity:0;animation:appear .4s 1.9s forwards}
.stamp{margin-top:24px;display:flex;align-items:center;gap:14px;border-top:1px dashed #CFD2DD;padding-top:18px;opacity:0;animation:stamp .45s 2.5s cubic-bezier(.2,1.4,.4,1) forwards}
.stamp .seal{width:44px;height:44px;border-radius:50%;border:2px solid var(--ok);color:var(--ok);display:grid;place-items:center;font-weight:800;flex:none}
.stamp strong{display:block;font-size:.95rem}
.stamp span{font-size:.84rem;color:var(--graphite)}
@keyframes strike{to{background-size:100% 2px}}
@keyframes appear{to{opacity:1}}
@keyframes stamp{from{opacity:0;transform:scale(1.08)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .sheet del{animation:none;background-size:100% 2px}
  .sheet ins,.sheet .margin-note,.stamp{animation:none;opacity:1}
}

/* ---------- Sections ---------- */
.section{padding:80px 0;border-bottom:1px solid var(--rule)}
.section.tint{background:var(--mist)}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px}
.section-head p{color:var(--graphite);max-width:36em;margin:0}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:s;border-top:2px solid var(--ink)}
.steps li{counter-increment:s;padding:22px 20px 0 0}
.steps li::before{content:counter(s);display:block;font:500 2.6rem/1 var(--serif);color:var(--pen);margin-bottom:14px}
.steps h3{font-size:1.15rem;margin-bottom:6px} .steps p{color:var(--graphite);font-size:.93rem}

/* commissions ledger */
.commissions{border-top:2px solid var(--ink)}
.commission{display:grid;grid-template-columns:1fr auto;gap:24px;padding:20px 0;border-bottom:1px solid var(--rule);align-items:center;text-decoration:none}
.commission:hover h3{color:var(--pen)}
.commission h3{font-size:1.2rem;margin:4px 0 6px}
.commission .meta{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:.84rem;color:var(--graphite)}
.commission .reward{text-align:right}
.commission .reward b{display:block;font:600 1.6rem/1 var(--serif)}
.commission .reward small{color:var(--graphite);font-size:.8rem}
.commission .type{font-size:.8rem;font-weight:700;color:var(--pen)}
.commission.locked{opacity:.62}

/* plans */
.plans{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden;background:#fff}
.plan{padding:28px 24px;border-right:1px solid var(--rule);display:flex;flex-direction:column}
.plan:last-child{border-right:0}
.plan.featured{background:var(--ink);color:#fff}
.plan.featured .muted,.plan.featured li{color:#C9CCE0}
.plan h3{font-size:1.4rem;margin-bottom:4px}
.plan .price{font:500 2.3rem/1 var(--serif);margin:14px 0 4px}
.plan .price small{font:500 .85rem var(--sans);opacity:.7}
.plan ul{list-style:none;padding:0;margin:20px 0 26px;flex:1}
.plan li{padding:7px 0;border-top:1px solid rgba(127,127,150,.2);font-size:.92rem}
.plan.featured .btn{background:#fff;color:var(--ink);border-color:#fff}
.plan.current{outline:2px solid var(--ok);outline-offset:-2px}
.honest{display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:start;padding:28px;border:1px solid var(--rule);border-left:4px solid var(--pen);border-radius:var(--r-sm);background:#fff;margin-top:36px}
.honest h3{margin:0;font-size:1.2rem;max-width:12em}
.honest p{margin:0;color:var(--graphite)}

/* ---------- Reading: lists & article ---------- */
.lead-story{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;padding:40px 0;border-bottom:1px solid var(--rule)}
.lead-story h2{font-size:clamp(1.9rem,3.4vw,2.8rem);font-weight:500}
.lead-story a{text-decoration:none}
.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 36px}
.story{padding:26px 0;border-bottom:1px solid var(--rule)}
.story a{text-decoration:none}
.story h3{font-size:1.28rem;font-weight:600;margin:6px 0 8px}
.story p{color:var(--graphite);font-size:.95rem;margin:0}
.cat-link{font-size:.8rem;font-weight:700;color:var(--pen);text-decoration:none}
.byline{font-size:.84rem;color:var(--graphite);margin-top:10px}
.cover{aspect-ratio:16/9;object-fit:cover;width:100%;border-radius:var(--r-sm);background:var(--mist)}
.page-head{padding:48px 0 24px;border-bottom:2px solid var(--ink);margin-bottom:8px}
.page-head p{color:var(--graphite);max-width:40em;margin:0}

.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:64px;padding:48px 0 80px}
.article-head{max-width:720px}
.article-head h1{font-weight:500;font-size:clamp(2.1rem,4.4vw,3.3rem)}
.article-head .standfirst{font:400 1.3rem/1.5 var(--serif);color:var(--graphite);margin:10px 0 22px}
.article-meta{display:flex;flex-wrap:wrap;gap:6px 22px;font-size:.86rem;color:var(--graphite);padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.prose{max-width:680px;font:400 1.2rem/1.78 var(--serif);margin-top:32px}
.prose h2{font-size:1.7rem;margin:1.6em 0 .5em} .prose h3{font-size:1.35rem;margin:1.4em 0 .4em}
.prose ul,.prose ol{padding-left:1.3em} .prose li{margin:.35em 0}
.prose blockquote{margin:1.4em 0;padding:4px 0 4px 22px;border-left:3px solid var(--pen);font-style:italic;color:#34385A}
.prose a{color:var(--pen)}
.sources{max-width:680px;margin-top:40px;padding-top:18px;border-top:1px solid var(--rule);font-size:.9rem}
.sources ol{padding-left:1.2em;color:var(--graphite)} .sources a{word-break:break-all}
.aside-box{border-top:2px solid var(--ink);padding-top:14px;margin-bottom:34px}
.aside-box h4{font:700 .9rem var(--sans);margin-bottom:10px}
.aside-box ol,.aside-box ul{padding-left:1.1em;margin:0;font-size:.92rem}
.aside-box li{margin:6px 0}
.aside-box a{text-decoration:none}
.sticky{position:sticky;top:90px}
.share{display:flex;gap:8px;flex-wrap:wrap}
.share a{font-size:.84rem;font-weight:700;padding:7px 11px;border:1px solid var(--rule);border-radius:var(--r-sm);text-decoration:none}
.improve-box{background:var(--mist);padding:18px;border-radius:var(--r-sm);font-size:.92rem}
.ad{margin:28px 0;padding:10px;background:var(--mist);text-align:center;border-radius:var(--r-sm)}
.ad-label{display:block;font-size:.7rem;color:var(--graphite);margin-bottom:6px}

/* ---------- App (dashboard) ---------- */
.app-main{padding:36px 0 80px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;margin-bottom:32px}
.stat{padding:20px 22px;border-right:1px solid var(--rule)} .stat:last-child{border-right:0}
.stat span{display:block;font-size:.84rem;color:var(--graphite)}
.stat b{display:block;font:500 1.9rem/1.2 var(--serif);margin-top:4px}
.stat small{color:var(--graphite);font-size:.8rem}
.panel{border:1px solid var(--rule);border-radius:var(--r-md);background:#fff;padding:24px;margin-bottom:24px}
.panel h2{font-size:1.35rem}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:28px;align-items:start}
.meter{height:8px;background:var(--mist);border-radius:6px;overflow:hidden;margin:6px 0 4px}
.meter i{display:block;height:100%;background:var(--ink)}
table.data{width:100%;border-collapse:collapse;font-size:.92rem}
table.data th{text-align:left;font-size:.8rem;color:var(--graphite);font-weight:700;padding:10px 12px;border-bottom:2px solid var(--ink)}
table.data td{padding:12px;border-bottom:1px solid var(--rule);vertical-align:top}
table.data tr:hover td{background:#FAFAFC}
.table-wrap{overflow-x:auto}
.filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.filters select,.filters input{width:auto;min-width:160px}
.brief{font:400 1.08rem/1.7 var(--serif);white-space:pre-wrap}
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:.92rem;margin:0}
.kv dt{color:var(--graphite)} .kv dd{margin:0;font-weight:600}
.notice{padding:14px 16px;border-radius:var(--r-sm);background:var(--warn-soft);color:#5B3C00;font-size:.93rem;margin-bottom:18px}
.editor-note{padding:14px 16px;border-left:3px solid var(--pen);background:var(--pen-soft);border-radius:0 var(--r-sm) var(--r-sm) 0;margin-bottom:18px}
.wc{font-size:.85rem;color:var(--graphite);text-align:right;margin-top:6px}
.diff p{padding:8px 12px;margin:0 0 6px;border-radius:var(--r-sm);font:400 1rem/1.6 var(--serif);white-space:pre-wrap}
.diff .add{background:var(--ok-soft);border-left:3px solid var(--ok)}
.diff .del{background:var(--pen-soft);border-left:3px solid var(--pen);text-decoration:line-through;color:#7A1810}
.diff .same{color:var(--graphite)}
.flags{margin:0;padding-left:1.1em} .flags li{margin:4px 0}
.ai-notes{white-space:pre-wrap;font-size:.92rem;background:var(--mist);padding:16px;border-radius:var(--r-sm)}
.empty-state{padding:80px 0;text-align:center}
.notif{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule)}
.notif.unread{font-weight:700}
.auth{max-width:440px;margin:56px auto 80px}
.auth h1{font-size:2.3rem}
.pager{display:flex;gap:18px;align-items:center;justify-content:center;margin:36px 0;font-size:.92rem}
.pager a{font-weight:700}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:#C3C6DA;padding:56px 0 40px;margin-top:0}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
.site-footer h4{color:#fff;font:700 .9rem var(--sans);margin-bottom:12px}
.site-footer a{color:#C3C6DA;text-decoration:none;display:block;padding:3px 0;font-size:.92rem}
.site-footer a:hover{color:#fff}
.site-footer .logo b{color:#fff}
.site-footer .legal{border-top:1px solid #2C3060;margin-top:40px;padding-top:20px;font-size:.82rem;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .hero .wrap,.lead-story,.article-layout,.two-col{grid-template-columns:1fr}
  .proof{max-width:560px}

  .steps{grid-template-columns:1fr 1fr;gap:0 24px}
  .plans{grid-template-columns:1fr 1fr}
  .plan:nth-child(2){border-right:0} .plan:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .story-grid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:1fr 1fr} .stat:nth-child(2){border-right:0} .stat:nth-child(-n+2){border-bottom:1px solid var(--rule)}
  .site-footer .cols{grid-template-columns:1fr 1fr}
  .article-layout aside{order:2}
  .sticky{position:static}
}
@media (max-width:760px){
  .masthead .wrap{height:60px;gap:12px}
  .logo span{display:none}
  .menu-toggle{display:block;margin-left:auto}
  .nav{display:none;position:absolute;top:60px;left:0;right:0;background:#fff;flex-direction:column;padding:16px 24px;border-bottom:1px solid var(--rule);gap:14px}
  .nav.open{display:flex}
  .nav-right .btn.ghost{display:none}
  .hero{padding:44px 0 56px}
  .section{padding:56px 0}
  .section-head{flex-direction:column;align-items:start}
  .steps,.plans,.story-grid,.grid2,.grid3{grid-template-columns:1fr}
  .plan{border-right:0;border-bottom:1px solid var(--rule)}
  .commission{grid-template-columns:1fr}
  .commission .reward{text-align:left}
  .honest{grid-template-columns:1fr}
  .site-footer .cols{grid-template-columns:1fr}
  .prose{font-size:1.1rem}
}

/* Email confirmation reminder */
.verify-bar{background:#FFF7E6;border-bottom:1px solid #F1D9A6;color:var(--ink);font-size:.9rem;padding:10px 0}
.verify-bar a{font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
details summary::-webkit-details-marker{color:var(--graphite)}

/* CMS announcement bar */
.announce{background:var(--ink);color:#fff;font-size:.9rem;text-align:center;padding:9px 0}
.announce a{color:#fff;font-weight:700;text-decoration:none}
.announce a:hover{text-decoration:underline;text-underline-offset:3px}
.faq-a p{margin:12px 0 0}

/* Admin menu: wrap onto two rows on wide screens instead of hiding links off-screen */
@media (min-width:900px){
  .subnav.admin .wrap{flex-wrap:wrap;overflow:visible;column-gap:2px}
  .subnav.admin a{padding:10px 12px}
}