← back to Ventura Corridor

linkedin-marketing-calendar.html

1408 lines

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LinkedIn Marketing Calendar — Designer Wallcoverings</title>
<style>
  :root {
    --navy: #0D1B2A; --navy2: #162336; --navy3: #1e2f45;
    --gold: #C9A84C; --gold2: #e4c06e;
    --white: #F5F0E8; --muted: #8a9bb0;
    --green: #27ae60; --blue: #2980b9; --purple: #8e44ad;
    --orange: #e67e22; --teal: #16a085; --red: #c0392b;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  body { background: var(--navy); color: var(--white); font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }

  header {
    background: var(--navy2);
    border-bottom: 2px solid var(--gold);
    padding: 18px 28px;
    display: flex; justify-content: space-between; align-items: center;
  }
  header h1 { font-size: 1.15rem; color: var(--gold); text-transform: uppercase; letter-spacing: 0.07em; }
  header .sub { font-size: 0.75rem; color: var(--muted); margin-top: 3px; }

  .tab-bar {
    background: var(--navy2);
    display: flex; gap: 0;
    border-bottom: 1px solid var(--navy3);
    overflow-x: auto;
  }
  .tab {
    padding: 13px 22px;
    font-size: 0.82rem;
    color: var(--muted);
    cursor: pointer;
    border-bottom: 3px solid transparent;
    white-space: nowrap;
    transition: all 0.15s;
  }
  .tab:hover { color: var(--white); }
  .tab.active { color: var(--gold); border-bottom-color: var(--gold); }

  .panel { display: none; padding: 28px; }
  .panel.active { display: block; }

  /* TIMELINE */
  .month-block { margin-bottom: 40px; }
  .month-hdr {
    display: flex; align-items: center; gap: 14px;
    margin-bottom: 18px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--navy3);
  }
  .month-hdr h2 { font-size: 1.05rem; color: var(--gold); }
  .month-hdr .theme { font-size: 0.78rem; color: var(--muted); background: var(--navy2); padding: 4px 12px; border-radius: 12px; }

  .content-item {
    background: var(--navy2);
    border: 1px solid var(--navy3);
    border-left: 4px solid var(--navy3);
    border-radius: 8px;
    padding: 16px 20px;
    margin-bottom: 14px;
    cursor: pointer;
    transition: all 0.15s;
  }
  .content-item:hover { border-color: var(--gold); border-left-color: var(--gold); }
  .content-item.event { border-left-color: var(--teal); }
  .content-item.newsletter { border-left-color: var(--purple); }
  .content-item.post-company { border-left-color: var(--blue); }
  .content-item.post-personal { border-left-color: var(--orange); }

  .item-hdr { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
  .type-badge {
    font-size: 0.65rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em;
    padding: 3px 9px; border-radius: 10px;
  }
  .tb-event      { background: #0a2a2a; color: var(--teal); }
  .tb-newsletter { background: #1a0a2a; color: #b07de0; }
  .tb-company    { background: #0a1a2a; color: #60a8e0; }
  .tb-personal   { background: #2a1a0a; color: #e0a060; }

  .item-date { font-size: 0.75rem; color: var(--muted); }
  .item-title { font-size: 0.95rem; font-weight: 600; }
  .item-preview { font-size: 0.8rem; color: var(--muted); margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  .status-dot {
    width: 8px; height: 8px; border-radius: 50%;
    margin-left: auto; flex-shrink: 0;
  }
  .s-draft    { background: var(--muted); }
  .s-ready    { background: var(--gold); }
  .s-live     { background: var(--green); }

  /* CONTENT MODAL */
  .modal-overlay {
    display: none; position: fixed; inset: 0;
    background: rgba(0,0,0,0.75); z-index: 200;
    justify-content: center; align-items: flex-start;
    padding: 40px 20px; overflow-y: auto;
  }
  .modal-overlay.open { display: flex; }
  .modal {
    background: var(--navy2);
    border: 1px solid var(--navy3);
    border-radius: 12px;
    width: 100%; max-width: 720px;
    padding: 28px;
    position: relative;
  }
  .modal-close {
    position: absolute; top: 16px; right: 20px;
    background: none; border: none; color: var(--muted);
    font-size: 1.4rem; cursor: pointer;
  }
  .modal-close:hover { color: var(--white); }
  .modal h2 { font-size: 1.1rem; color: var(--gold); margin-bottom: 6px; }
  .modal .meta { font-size: 0.78rem; color: var(--muted); margin-bottom: 18px; display: flex; gap: 14px; flex-wrap: wrap; }
  .modal .body-copy {
    background: var(--navy3);
    border-radius: 8px;
    padding: 18px;
    font-size: 0.88rem;
    line-height: 1.7;
    white-space: pre-wrap;
    color: var(--white);
    margin-bottom: 14px;
  }
  .copy-btn {
    background: var(--gold);
    color: var(--navy);
    border: none;
    padding: 9px 20px;
    border-radius: 6px;
    font-weight: 700;
    font-size: 0.85rem;
    cursor: pointer;
  }
  .copy-btn:hover { background: var(--gold2); }
  .modal .tips { margin-top: 16px; }
  .modal .tips h4 { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted); margin-bottom: 8px; }
  .modal .tips ul { list-style: none; }
  .modal .tips li { font-size: 0.8rem; color: var(--muted); padding: 4px 0; border-bottom: 1px solid var(--navy3); }
  .modal .tips li::before { content: "→ "; color: var(--gold); }

  .status-toggle { display: flex; gap: 8px; margin-top: 14px; }
  .st-btn {
    flex: 1; padding: 8px; border-radius: 6px; border: 1px solid var(--navy3);
    background: transparent; color: var(--muted); font-size: 0.8rem; cursor: pointer;
  }
  .st-btn.active-draft { background: #2a2a2a; color: var(--white); border-color: var(--muted); }
  .st-btn.active-ready { background: #2a2000; color: var(--gold); border-color: var(--gold); }
  .st-btn.active-live  { background: #002a00; color: var(--green); border-color: var(--green); }

  /* STATS */
  .stats-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; margin-bottom: 28px; }
  .stat-card { background: var(--navy2); border: 1px solid var(--navy3); border-radius: 10px; padding: 18px; }
  .stat-card .val { font-size: 2rem; font-weight: 700; color: var(--gold); }
  .stat-card .lbl { font-size: 0.72rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 4px; }

  .progress-row { margin-bottom: 20px; }
  .progress-row .pl { display: flex; justify-content: space-between; font-size: 0.8rem; margin-bottom: 6px; }
  .progress-row .pl .name { color: var(--white); }
  .progress-row .pl .frac { color: var(--muted); }
  .progress-bar { height: 8px; background: var(--navy3); border-radius: 4px; overflow: hidden; }
  .progress-fill { height: 100%; border-radius: 4px; transition: width 0.3s; }

  .flash { position: fixed; bottom: 24px; right: 24px; background: var(--green); color: #003300; padding: 10px 20px; border-radius: 8px; font-weight: 700; font-size: 0.85rem; opacity: 0; transition: opacity 0.2s; pointer-events: none; z-index: 300; }
  .flash.show { opacity: 1; }
</style>
</head>
<body>

<header>
  <div>
    <h1>LinkedIn Marketing Calendar</h1>
    <div class="sub">Designer Wallcoverings · June 24 – October 31, 2026 · Events · Newsletter · Company Posts · Personal Posts</div>
  </div>
  <div style="font-size:0.8rem;color:var(--gold)">4-Month Campaign</div>
</header>

<div class="tab-bar">
  <div class="tab active" onclick="showTab('timeline',this)">📅 Timeline</div>
  <div class="tab" onclick="showTab('events',this)">🎪 Events (5)</div>
  <div class="tab" onclick="showTab('newsletter',this)">📰 Newsletter (4 Issues)</div>
  <div class="tab" onclick="showTab('company',this)">🏢 Company Posts (18)</div>
  <div class="tab" onclick="showTab('personal',this)">👤 Personal Posts (16)</div>
  <div class="tab" onclick="showTab('progress',this)">📊 Progress</div>
</div>

<!-- TIMELINE -->
<div class="panel active" id="panel-timeline">

  <!-- MONTH 1 -->
  <div class="month-block">
    <div class="month-hdr">
      <h2>Month 1 — June 24 – July 31</h2>
      <span class="theme">Foundation + Gold Tier Activation</span>
    </div>

    <div class="content-item event" onclick="openModal('ev1')">
      <div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Jun 30</span><div class="status-dot s-ready" id="dot-ev1"></div></div>
      <div class="item-title">DW Trade Connect — Summer 2026 Kickoff</div>
      <div class="item-preview">Virtual meet & greet for designers, architects, and set decorators in the LA/Ventura area...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp1')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Jun 24</span><div class="status-dot s-ready" id="dot-cp1"></div></div>
      <div class="item-title">Launch: "Wallcovering Is Having a Moment"</div>
      <div class="item-preview">The wallcovering space is having a moment. Here's why designers are specifying it first in 2026...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp1')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Jun 24</span><div class="status-dot s-ready" id="dot-pp1"></div></div>
      <div class="item-title">Post 1: "The Wall Problem"</div>
      <div class="item-preview">The most underspecified surface in any interior is the wall. Floors get $40/sq ft tile...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp2')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Jul 1</span><div class="status-dot s-ready" id="dot-cp2"></div></div>
      <div class="item-title">Vendor Spotlight: Kravet + Cole & Son</div>
      <div class="item-preview">Two houses. Completely different design languages. Both essential to specifying a great interior...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp2')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Jul 1</span><div class="status-dot s-ready" id="dot-pp2"></div></div>
      <div class="item-title">Post 2: "What Set Decorators Know"</div>
      <div class="item-preview">Set decorators have known something residential designers are just catching up on...</div>
    </div>

    <div class="content-item newsletter" onclick="openModal('nl1')">
      <div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Jul 15</span><div class="status-dot s-ready" id="dot-nl1"></div></div>
      <div class="item-title">Issue 1: "The Wallcovering Moment — Why 2026 Is Different"</div>
      <div class="item-preview">Welcome to the DW Trade Brief. This issue: why wallcovering is back, what's changed, and what it means for your projects...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp3')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Jul 8</span><div class="status-dot s-ready" id="dot-pp3"></div></div>
      <div class="item-title">Post 3: "The Spec Question" (for Architects)</div>
      <div class="item-preview">Architects: when was the last time you specified wallcovering beyond the bathroom accent wall?...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp3')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Jul 15</span><div class="status-dot s-ready" id="dot-cp3"></div></div>
      <div class="item-title">Pattern Focus: Geometric + Textural for 2026</div>
      <div class="item-preview">The strongest wallcovering specs we're seeing in Q3: bold geometrics in commercial spaces, textural linens in residential...</div>
    </div>
  </div>

  <!-- MONTH 2 -->
  <div class="month-block">
    <div class="month-hdr">
      <h2>Month 2 — August 2026</h2>
      <span class="theme">Scale Designers + Architects</span>
    </div>

    <div class="content-item event" onclick="openModal('ev2')">
      <div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Aug 7</span><div class="status-dot s-draft" id="dot-ev2"></div></div>
      <div class="item-title">Material Sourcing Roundtable — Interior Designers & Architects</div>
      <div class="item-preview">A virtual roundtable for LA/Ventura designers on wallcovering specification: what's available, how to spec it, trade pricing...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp4')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Aug 5</span><div class="status-dot s-draft" id="dot-pp4"></div></div>
      <div class="item-title">Post 5: "The Renovation Gap" (for Facility Managers)</div>
      <div class="item-preview">Facility managers and property managers: when you're refreshing a lobby, corridor, or guest room — paint gets you 3–5 years...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp4')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Aug 5</span><div class="status-dot s-draft" id="dot-cp4"></div></div>
      <div class="item-title">Hospitality Trends: What Hotels Are Specifying in 2026</div>
      <div class="item-preview">The hospitality sector is back to full renovation cycles. Here's what we're seeing in wallcovering specification across hotel brands...</div>
    </div>

    <div class="content-item newsletter" onclick="openModal('nl2')">
      <div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Aug 15</span><div class="status-dot s-draft" id="dot-nl2"></div></div>
      <div class="item-title">Issue 2: "Specifying Wallcovering — A Designer's Practical Guide"</div>
      <div class="item-preview">This issue: everything you need to spec wallcovering confidently — fire ratings, installation, minimums, samples, trade pricing...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp5')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Aug 12</span><div class="status-dot s-draft" id="dot-pp5"></div></div>
      <div class="item-title">Post 6: "The Design/Build Advantage"</div>
      <div class="item-preview">Design/build firms have a unique advantage most design-only or build-only firms don't: you control spec AND execution...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp5')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Aug 19</span><div class="status-dot s-draft" id="dot-cp5"></div></div>
      <div class="item-title">Grasscloth & Natural Textiles: A Comeback Story</div>
      <div class="item-preview">After a decade on the sidelines, natural-fiber wallcovering is back in serious spec conversations. Here's why...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp6')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Aug 26</span><div class="status-dot s-draft" id="dot-pp6"></div></div>
      <div class="item-title">Post 7: "Pattern Focus — Color as Architecture"</div>
      <div class="item-preview">The best wallcovering specs I've seen this year don't add pattern to a room. They use pattern to define the room's character...</div>
    </div>
  </div>

  <!-- MONTH 3 -->
  <div class="month-block">
    <div class="month-hdr">
      <h2>Month 3 — September 2026</h2>
      <span class="theme">Convert Deals + Final D/B Push</span>
    </div>

    <div class="content-item event" onclick="openModal('ev3')">
      <div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Sep 11</span><div class="status-dot s-draft" id="dot-ev3"></div></div>
      <div class="item-title">Ventura Design Community: Q3 Project Showcase</div>
      <div class="item-preview">An open invitation to local designers, architects, and D/B firms to share Q3 project work and connect with trade resources...</div>
    </div>

    <div class="content-item newsletter" onclick="openModal('nl3')">
      <div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Sep 9</span><div class="status-dot s-draft" id="dot-nl3"></div></div>
      <div class="item-title">Issue 3: "Project Stories — Wallcovering in Real Spaces"</div>
      <div class="item-preview">This issue: three real project stories showing how designers used wallcovering to solve specific problems...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp6')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Sep 2</span><div class="status-dot s-draft" id="dot-cp6"></div></div>
      <div class="item-title">The Spec Process: From Sample Request to Installation</div>
      <div class="item-preview">How wallcovering gets from a trade request to installed — a step-by-step breakdown for designers new to specifying it...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp7')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Sep 16</span><div class="status-dot s-draft" id="dot-pp7"></div></div>
      <div class="item-title">Post 9: "Mid-Year Wallcovering Check-In"</div>
      <div class="item-preview">Six months into 2026 and a clear pattern has emerged in what's speccing at the top of the market...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp7')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Sep 23</span><div class="status-dot s-draft" id="dot-cp7"></div></div>
      <div class="item-title">Q4 Preview: What to Watch in Wallcovering Design</div>
      <div class="item-preview">Fall is when the next cycle of interior design projects begin. Here's what's coming in Q4 wallcovering specification...</div>
    </div>
  </div>

  <!-- MONTH 4 -->
  <div class="month-block">
    <div class="month-hdr">
      <h2>Month 4 — October 2026</h2>
      <span class="theme">Sustain + Close Deals</span>
    </div>

    <div class="content-item event" onclick="openModal('ev4')">
      <div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Oct 9</span><div class="status-dot s-draft" id="dot-ev4"></div></div>
      <div class="item-title">DW Fall Trade Preview — Q4 Collection Drop</div>
      <div class="item-preview">Exclusive preview of fall wallcovering arrivals for trade professionals in LA and Ventura. Virtual + sample kit option...</div>
    </div>

    <div class="content-item event" onclick="openModal('ev5')">
      <div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Oct 23</span><div class="status-dot s-draft" id="dot-ev5"></div></div>
      <div class="item-title">2027 Project Planning: Wallcovering Spec Kickoff</div>
      <div class="item-preview">Planning your 2027 project pipeline? Join us for a 30-min overview of what to spec, how to budget, and what's coming...</div>
    </div>

    <div class="content-item newsletter" onclick="openModal('nl4')">
      <div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Oct 14</span><div class="status-dot s-draft" id="dot-nl4"></div></div>
      <div class="item-title">Issue 4: "Q4 Wallcovering Report — What's Coming in 2027"</div>
      <div class="item-preview">Our quarterly wrap: the patterns, materials, and client preferences defining the next spec cycle...</div>
    </div>

    <div class="content-item post-personal" onclick="openModal('pp8')">
      <div class="item-hdr"><span class="type-badge tb-personal">Personal Post</span><span class="item-date">Oct 7</span><div class="status-dot s-draft" id="dot-pp8"></div></div>
      <div class="item-title">Post 13: "Why Wallcovering Is a Q1 2027 Decision"</div>
      <div class="item-preview">Most designers and architects I talk to think of wallcovering as a finishing decision. The best ones I know treat it as a starting point...</div>
    </div>

    <div class="content-item post-company" onclick="openModal('cp8')">
      <div class="item-hdr"><span class="type-badge tb-company">Company Post</span><span class="item-date">Oct 28</span><div class="status-dot s-draft" id="dot-cp8"></div></div>
      <div class="item-title">Year in Review: DW Trade Highlights 2026</div>
      <div class="item-preview">What a year in wallcovering specification. Here's what we saw, what worked, and what's coming...</div>
    </div>
  </div>
</div>

<!-- EVENTS PANEL -->
<div class="panel" id="panel-events">
  <p style="color:var(--muted);margin-bottom:20px;font-size:0.85rem;">Create these as <strong style="color:var(--white)">LinkedIn Events</strong> on your personal profile or the DW Company Page. Events get distributed to followers and send reminder notifications automatically.</p>
  <div class="content-item event" onclick="openModal('ev1')"><div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Jun 30</span><div class="status-dot s-ready" id="dot2-ev1"></div></div><div class="item-title">DW Trade Connect — Summer 2026 Kickoff</div><div class="item-preview">Virtual meet & greet for designers, architects, and set decorators...</div></div>
  <div class="content-item event" onclick="openModal('ev2')"><div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Aug 7</span><div class="status-dot s-draft" id="dot2-ev2"></div></div><div class="item-title">Material Sourcing Roundtable — Interior Designers & Architects</div><div class="item-preview">A virtual roundtable on wallcovering specification...</div></div>
  <div class="content-item event" onclick="openModal('ev3')"><div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Sep 11</span><div class="status-dot s-draft" id="dot2-ev3"></div></div><div class="item-title">Ventura Design Community: Q3 Project Showcase</div><div class="item-preview">An open invitation to local designers to share Q3 project work...</div></div>
  <div class="content-item event" onclick="openModal('ev4')"><div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Oct 9</span><div class="status-dot s-draft" id="dot2-ev4"></div></div><div class="item-title">DW Fall Trade Preview — Q4 Collection Drop</div><div class="item-preview">Exclusive preview of fall wallcovering arrivals for trade professionals...</div></div>
  <div class="content-item event" onclick="openModal('ev5')"><div class="item-hdr"><span class="type-badge tb-event">Event</span><span class="item-date">Oct 23</span><div class="status-dot s-draft" id="dot2-ev5"></div></div><div class="item-title">2027 Project Planning: Wallcovering Spec Kickoff</div><div class="item-preview">Planning your 2027 project pipeline? Join us for a 30-min overview...</div></div>
</div>

<!-- NEWSLETTER PANEL -->
<div class="panel" id="panel-newsletter">
  <p style="color:var(--muted);margin-bottom:20px;font-size:0.85rem;">Create a <strong style="color:var(--white)">LinkedIn Newsletter</strong> called <em style="color:var(--gold)">"The DW Trade Brief"</em> — publish monthly. Subscribers get notified of every new issue AND receive all back issues when they subscribe.</p>
  <div class="content-item newsletter" onclick="openModal('nl1')"><div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Jul 15</span><div class="status-dot s-ready" id="dot3-nl1"></div></div><div class="item-title">Issue 1: "The Wallcovering Moment — Why 2026 Is Different"</div><div class="item-preview">Why wallcovering is back, what's changed, and what it means for your projects...</div></div>
  <div class="content-item newsletter" onclick="openModal('nl2')"><div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Aug 15</span><div class="status-dot s-draft" id="dot3-nl2"></div></div><div class="item-title">Issue 2: "Specifying Wallcovering — A Designer's Practical Guide"</div><div class="item-preview">Everything you need to spec wallcovering confidently — fire ratings, installation, minimums...</div></div>
  <div class="content-item newsletter" onclick="openModal('nl3')"><div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Sep 9</span><div class="status-dot s-draft" id="dot3-nl3"></div></div><div class="item-title">Issue 3: "Project Stories — Wallcovering in Real Spaces"</div><div class="item-preview">Three real project stories showing how designers used wallcovering to solve specific problems...</div></div>
  <div class="content-item newsletter" onclick="openModal('nl4')"><div class="item-hdr"><span class="type-badge tb-newsletter">Newsletter</span><span class="item-date">Oct 14</span><div class="status-dot s-draft" id="dot3-nl4"></div></div><div class="item-title">Issue 4: "Q4 Wallcovering Report — What's Coming in 2027"</div><div class="item-preview">Our quarterly wrap: the patterns, materials, and client preferences defining the next spec cycle...</div></div>
</div>

<!-- COMPANY POSTS -->
<div class="panel" id="panel-company">
  <p style="color:var(--muted);margin-bottom:20px;font-size:0.85rem;">Post these on the <strong style="color:var(--white)">Designer Wallcoverings Company Page</strong> on LinkedIn. These build the brand's trade authority and SEO presence.</p>
  <div class="content-item post-company" onclick="openModal('cp1')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Jun 24</span><div class="status-dot s-ready"></div></div><div class="item-title">Launch: "Wallcovering Is Having a Moment"</div></div>
  <div class="content-item post-company" onclick="openModal('cp2')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Jul 1</span><div class="status-dot s-ready"></div></div><div class="item-title">Vendor Spotlight: Kravet + Cole & Son</div></div>
  <div class="content-item post-company" onclick="openModal('cp3')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Jul 15</span><div class="status-dot s-ready"></div></div><div class="item-title">Pattern Focus: Geometric + Textural for 2026</div></div>
  <div class="content-item post-company" onclick="openModal('cp4')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Aug 5</span><div class="status-dot s-draft"></div></div><div class="item-title">Hospitality Trends: What Hotels Are Specifying in 2026</div></div>
  <div class="content-item post-company" onclick="openModal('cp5')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Aug 19</span><div class="status-dot s-draft"></div></div><div class="item-title">Grasscloth & Natural Textiles: A Comeback Story</div></div>
  <div class="content-item post-company" onclick="openModal('cp6')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Sep 2</span><div class="status-dot s-draft"></div></div><div class="item-title">The Spec Process: From Sample Request to Installation</div></div>
  <div class="content-item post-company" onclick="openModal('cp7')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Sep 23</span><div class="status-dot s-draft"></div></div><div class="item-title">Q4 Preview: What to Watch in Wallcovering Design</div></div>
  <div class="content-item post-company" onclick="openModal('cp8')"><div class="item-hdr"><span class="type-badge tb-company">Company</span><span class="item-date">Oct 28</span><div class="status-dot s-draft"></div></div><div class="item-title">Year in Review: DW Trade Highlights 2026</div></div>
</div>

<!-- PERSONAL POSTS -->
<div class="panel" id="panel-personal">
  <p style="color:var(--muted);margin-bottom:20px;font-size:0.85rem;">Post these on <strong style="color:var(--white)">your personal LinkedIn profile</strong> (Steve, 5,432 followers). These build your personal trade authority and attract inbound from target audiences.</p>
  <div class="content-item post-personal" onclick="openModal('pp1')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Jun 24</span><div class="status-dot s-ready"></div></div><div class="item-title">Post 1: "The Wall Problem"</div></div>
  <div class="content-item post-personal" onclick="openModal('pp2')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Jul 1</span><div class="status-dot s-ready"></div></div><div class="item-title">Post 2: "What Set Decorators Know"</div></div>
  <div class="content-item post-personal" onclick="openModal('pp3')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Jul 8</span><div class="status-dot s-ready"></div></div><div class="item-title">Post 3: "The Spec Question" (Architects)</div></div>
  <div class="content-item post-personal" onclick="openModal('pp4')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Aug 5</span><div class="status-dot s-draft"></div></div><div class="item-title">Post 5: "The Renovation Gap" (Facility Managers)</div></div>
  <div class="content-item post-personal" onclick="openModal('pp5')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Aug 12</span><div class="status-dot s-draft"></div></div><div class="item-title">Post 6: "The Design/Build Advantage"</div></div>
  <div class="content-item post-personal" onclick="openModal('pp6')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Aug 26</span><div class="status-dot s-draft"></div></div><div class="item-title">Post 7: "Pattern Focus — Color as Architecture"</div></div>
  <div class="content-item post-personal" onclick="openModal('pp7')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Sep 16</span><div class="status-dot s-draft"></div></div><div class="item-title">Post 9: "Mid-Year Wallcovering Check-In"</div></div>
  <div class="content-item post-personal" onclick="openModal('pp8')"><div class="item-hdr"><span class="type-badge tb-personal">Personal</span><span class="item-date">Oct 7</span><div class="status-dot s-draft"></div></div><div class="item-title">Post 13: "Why Wallcovering Is a Q1 2027 Decision"</div></div>
</div>

<!-- PROGRESS -->
<div class="panel" id="panel-progress">
  <div class="stats-grid">
    <div class="stat-card"><div class="val" id="pr-total">33</div><div class="lbl">Total Content Pieces</div></div>
    <div class="stat-card"><div class="val" id="pr-ready" style="color:var(--gold)">0</div><div class="lbl">Ready / Scheduled</div></div>
    <div class="stat-card"><div class="val" id="pr-live" style="color:var(--green)">0</div><div class="lbl">Published Live</div></div>
    <div class="stat-card"><div class="val" id="pr-draft" style="color:var(--muted)">33</div><div class="lbl">Still Draft</div></div>
  </div>
  <div class="progress-row"><div class="pl"><span class="name">🎪 Events (5)</span><span class="frac" id="pf-events">0/5</span></div><div class="progress-bar"><div class="progress-fill" id="pb-events" style="width:0%;background:var(--teal)"></div></div></div>
  <div class="progress-row"><div class="pl"><span class="name">📰 Newsletter Issues (4)</span><span class="frac" id="pf-nl">0/4</span></div><div class="progress-bar"><div class="progress-fill" id="pb-nl" style="width:0%;background:var(--purple)"></div></div></div>
  <div class="progress-row"><div class="pl"><span class="name">🏢 Company Page Posts (8)</span><span class="frac" id="pf-cp">0/8</span></div><div class="progress-bar"><div class="progress-fill" id="pb-cp" style="width:0%;background:var(--blue)"></div></div></div>
  <div class="progress-row"><div class="pl"><span class="name">👤 Personal Posts (8+)</span><span class="frac" id="pf-pp">0/8</span></div><div class="progress-bar"><div class="progress-fill" id="pb-pp" style="width:0%;background:var(--orange)"></div></div></div>
</div>

<!-- MODAL -->
<div class="modal-overlay" id="modal-overlay" onclick="closeModalOutside(event)">
  <div class="modal">
    <button class="modal-close" onclick="closeModal()">✕</button>
    <div id="modal-type-badge" style="margin-bottom:10px"></div>
    <h2 id="modal-title"></h2>
    <div class="meta" id="modal-meta"></div>
    <div class="body-copy" id="modal-body"></div>
    <button class="copy-btn" onclick="copyContent()">Copy to Clipboard</button>
    <div class="tips" id="modal-tips"></div>
    <div class="status-toggle">
      <button class="st-btn" id="st-draft" onclick="setStatus('draft')">📝 Draft</button>
      <button class="st-btn" id="st-ready" onclick="setStatus('ready')">⏰ Scheduled / Ready</button>
      <button class="st-btn" id="st-live" onclick="setStatus('live')">✅ Published Live</button>
    </div>
  </div>
</div>

<div class="flash" id="flash"></div>

<script>
const CONTENT = {
  ev1: {
    type:'event', label:'LinkedIn Event',
    title:'DW Trade Connect — Summer 2026 Kickoff',
    date:'Jun 30, 2026',
    body:`EVENT TITLE:
DW Trade Connect — Summer 2026 Kickoff

DATE: Monday, June 30, 2026
TIME: 12:00 PM – 1:00 PM PT
FORMAT: Virtual (LinkedIn Live or Zoom)
HOST: Steve [your name], Designer Wallcoverings

EVENT DESCRIPTION:
If you're an interior designer, architect, set decorator, or facility manager in the LA/Ventura area — this is for you.

We're kicking off our summer trade outreach with a casual 45-minute virtual meet & greet. No pitch, no pressure. Just:

→ A look at what's trending in wallcovering specification right now
→ A chance to ask questions about sourcing, samples, trade pricing
→ An intro to how DW works with design professionals in your category

We'll share 3–4 pattern directions getting the most traction with designers this season, and answer any spec questions you have.

RSVP and we'll send you a physical sample kit in advance.

ABOUT DESIGNER WALLCOVERINGS:
Trade-only source for premium wallcovering. 50,000+ patterns. Fast samples, flexible minimums, competitive trade pricing. Serving LA and Ventura County.

designerwallcoverings.com`,
    tips:['Create via LinkedIn Events on your profile or Company Page', 'Set RSVP collection ON — every RSVP is a warm lead', 'Post a teaser 1 week before with a pattern preview image', 'After the event, message all attendees personally']
  },

  ev2: {
    type:'event', label:'LinkedIn Event',
    title:'Material Sourcing Roundtable — Interior Designers & Architects',
    date:'Aug 7, 2026',
    body:`EVENT TITLE:
Material Sourcing Roundtable — Interior Designers & Architects (LA/Ventura)

DATE: Thursday, August 7, 2026
TIME: 12:30 PM – 1:15 PM PT
FORMAT: Virtual roundtable (Zoom, 12 attendees max)
HOST: Steve, Designer Wallcoverings

EVENT DESCRIPTION:
A focused conversation for interior designers and architects in the LA/Ventura area about one topic: wallcovering specification.

We'll cover:
→ What's changed in the product landscape (it's not your grandmother's wallcovering)
→ How to read a spec sheet: fire ratings, installation requirements, repeat math
→ Trade pricing structures — how to build wallcovering into your project budgets
→ Sourcing for tight timelines: sample-to-order turnaround in 2026
→ Live Q&A on specific project challenges

Small group intentionally — 12 spots max so we can have a real conversation.

This is not a sales presentation. It's a sourcing conversation.

RSVP includes: sample kit + pattern direction guide mailed in advance.`,
    tips:['Cap at 12 to make it feel exclusive — list as "limited seats"', 'Ask each RSVP what project type they are working on', 'Send a follow-up InMail to every attendee after the event', 'Record and share the replay as a Company Page post']
  },

  ev3: {
    type:'event', label:'LinkedIn Event',
    title:'Ventura Design Community: Q3 Project Showcase',
    date:'Sep 11, 2026',
    body:`EVENT TITLE:
Ventura Design Community: Q3 Project Showcase

DATE: Thursday, September 11, 2026
TIME: 5:30 PM – 7:00 PM PT
FORMAT: Virtual showcase + networking
HOST: Steve, Designer Wallcoverings

EVENT DESCRIPTION:
End of Q3 — time to see what the design community in Ventura and LA has been building.

Open invitation to interior designers, architects, set decorators, and design/build firms to share one project they're proud of from Q3. We'll look at them together, talk about what worked, what the material choices were, and what's coming in Q4.

This is a community showcase, not a pitch session. DW is hosting and sponsoring, but the content is yours.

Share:
→ 3–5 project photos
→ 2 minutes on the brief and what you solved
→ What material choices drove the design

Plus: DW will share what we're seeing in wallcovering specification trends heading into Q4.

RSVP and share a preview image of your project. We'll feature it in the event landing page.`,
    tips:['Ask participants to share project images when they RSVP', 'Feature 1–2 project teasers in pre-event posts', 'Tag participants when you promote the event — they will reshare it', 'Perfect lead-in for Q4 InMails: "loved your Q3 project, wanted to reach out..."']
  },

  ev4: {
    type:'event', label:'LinkedIn Event',
    title:'DW Fall Trade Preview — Q4 Collection Drop',
    date:'Oct 9, 2026',
    body:`EVENT TITLE:
DW Fall Trade Preview — Q4 Collection Drop

DATE: Thursday, October 9, 2026
TIME: 12:00 PM – 12:45 PM PT
FORMAT: Virtual preview + live Q&A
HOST: Steve, Designer Wallcoverings

EVENT DESCRIPTION:
Fall is when the next wave of interior design projects begins to spec. This is your first look at what's arrived at Designer Wallcoverings for Q4.

We'll walk through:
→ 8–10 new pattern directions landing this fall across our key vendors
→ What's resonating with designers specifying luxury residential right now
→ Hospitality-forward options for facility and D/B teams planning 2027 refreshes
→ Trade pricing and minimum updates for Q4 orders
→ Live Q&A — bring your current project spec challenges

RSVP includes: physical Q4 sample kit mailed to you in advance of the event.

Priority seating for designers, architects, and D/B firms with active Q4 projects.`,
    tips:['This event should follow the Q3 showcase — your warm relationship list is already built', 'Mention specific vendors if new collections have dropped (Schumacher, Cole & Son, etc.)', 'The physical sample kit RSVP incentive drives conversions — mail only to confirmed attendees', 'Post a "new arrival" teaser post the week before to build anticipation']
  },

  ev5: {
    type:'event', label:'LinkedIn Event',
    title:'2027 Project Planning: Wallcovering Spec Kickoff',
    date:'Oct 23, 2026',
    body:`EVENT TITLE:
2027 Project Planning: Wallcovering Spec Kickoff for LA/Ventura Designers

DATE: Thursday, October 23, 2026
TIME: 12:00 PM – 12:30 PM PT
FORMAT: Virtual — 30 minutes, focused
HOST: Steve, Designer Wallcoverings

EVENT DESCRIPTION:
Short, focused, and directly useful.

If you're building your 2027 project pipeline — and you have any projects where wallcovering is or could be in the spec — this 30-minute session is worth your time.

We'll cover exactly three things:
1. What to spec in 2027: the pattern and material directions getting the most traction with high-end residential and hospitality clients
2. How to build wallcovering into project budgets without the usual sticker shock
3. How DW's trade program works: samples, minimums, lead times, and pricing

That's it. 30 minutes. No fluff.

RSVP and we'll send you a 2027 pattern direction guide in advance.`,
    tips:['The short format (30 min) drives higher RSVP conversion than long events', 'Position this as a planning tool — "start 2027 right"', 'Follow up every attendee with a personal InMail mentioning their project type', 'This is your last formal touchpoint before year-end — make every RSVP count']
  },

  nl1: {
    type:'newsletter', label:'LinkedIn Newsletter — Issue 1',
    title:'Issue 1: "The Wallcovering Moment — Why 2026 Is Different"',
    date:'Jul 15, 2026',
    body:`NEWSLETTER NAME: The DW Trade Brief
ISSUE 1 — Published Jul 15, 2026

HEADLINE:
The Wallcovering Moment — Why 2026 Is Different

INTRO:
Welcome to The DW Trade Brief.

This is a monthly newsletter for design professionals — interior designers, architects, set decorators, facility managers, and design/build firms — who want to stay ahead of what's happening in wallcovering specification.

I'm Steve, and I run Designer Wallcoverings, a trade-only source for premium wallcovering in the LA/Ventura market. I'll share what I'm seeing from the source side — what's moving, what's landing with clients, and what you should know before your next spec.

This issue: why wallcovering is back, what's changed, and what it means for your projects.

---

THE TREND:
Wallcovering Is Having Its Moment — and Here's Why It's Staying

For most of the 2010s, wallcovering had a reputation problem. When designers said "wallcovering," clients heard "the floral stuff my grandmother had in her dining room."

That era is over.

Here's what changed:

1. The product catalog transformed.
   The major houses — Schumacher, Cole & Son, Thibaut, Kravet — completely overhauled their ranges. Geometric, abstract, textural, muted, graphic, architectural. The 1980s floral is a fraction of what exists now.

2. Paint hit its ceiling.
   After 15 years of "paint is all you need," high-end clients have seen every possible shade of greige. Wallcovering offers texture, depth, and pattern that paint can't replicate.

3. The specification math got better.
   Commercial-grade wallcovering at $8–$15/sq ft installed now competes favorably against high-end paint when you factor in lifecycle (10–15 years vs. 3–5). Facility managers noticed this first. Residential designers are catching up.

---

WHAT THIS MEANS FOR YOUR PROJECTS:

If you're an interior designer or architect: your clients have seen the same minimalist interiors everywhere. Wallcovering is the fastest way to give a space a distinct point of view.

If you're a set decorator: this is old news to you. You've been using wallcovering for environmental storytelling for years. The sourcing has just gotten better.

If you're a facility manager: the lifecycle math is now firmly in your favor. One spec conversation is worth it.

---

PATTERN DIRECTION THIS MONTH:
Three things landing well with designers right now:
→ Organic linens and grasscloths (natural texture, acoustic benefit, calm)
→ Large-scale abstract prints (statement walls, hospitality environments)
→ Geometric mosaics in muted neutrals (commercial, high-traffic, durable)

---

NEXT ISSUE (Aug 15):
A practical guide to specifying wallcovering — fire ratings, repeat math, installation, trade pricing. Everything you need to write a confident spec.

— Steve
Designer Wallcoverings
designerwallcoverings.com`,
    tips:['Newsletter name: "The DW Trade Brief" — create once, publish monthly', 'Subscribers get notified of every new issue AND all back issues when they subscribe', 'Cross-post each issue as a shorter version on your personal feed', 'Target 200+ subscribers by Month 2 — mention the newsletter in every InMail']
  },

  nl2: {
    type:'newsletter', label:'LinkedIn Newsletter — Issue 2',
    title:'Issue 2: "Specifying Wallcovering — A Designer\'s Practical Guide"',
    date:'Aug 15, 2026',
    body:`THE DW TRADE BRIEF — Issue 2
Aug 15, 2026

HEADLINE:
Specifying Wallcovering: Everything You Need to Do It Confidently

Every designer I talk to who says "I don't usually specify wallcovering" means one of two things:
1. I had a bad installation experience once, or
2. I don't know the spec sheet well enough to be confident.

This issue is for both groups.

---

THE SPEC SHEET: What Actually Matters

FIRE RATINGS
Commercial projects require fire-rated wallcovering. Residential projects usually don't — but it's worth knowing.
→ Class A/B/C ratings (ASTM E84): most commercial-grade products are Class A
→ NFPA 265: the standard for large-scale flame spread testing
→ For hotel/hospitality specs, always confirm with the AHJ (Authority Having Jurisdiction) for the specific building

What to do: ask your supplier for the fire test documentation before specifying in any commercial project. DW includes this with every commercial spec request.

PATTERN REPEAT AND WASTE CALCULATION
The repeat is the vertical distance before the pattern starts over. The bigger the repeat, the more waste.
→ Straight match: waste = 0% to 10% (straight across)
→ Half-drop match: waste = 10% to 25% (pattern drops half a repeat on each seam)
→ Random match: waste = minimal (grasscloth, textures)

Rule of thumb: order 15–20% more than your calculated square footage. For large repeats (24"+), order 25%.

DOUBLE ROLL vs. SINGLE ROLL
Most wallcovering is still sold by the "double roll" unit — about 56 sq ft. Single rolls are ~28 sq ft. This matters when calculating orders. Always confirm the unit of measure with your supplier.

INSTALLATION
Wallcovering installation is a skilled trade. A bad installer can destroy a beautiful product. Requirements:
→ Walls must be primed with a wallcovering-specific primer (not standard paint primer)
→ Paste type matters: some papers need traditional paste, others need clay-based, others are pre-pasted
→ Professional installers know which. Ask your supplier for installer recommendations.

DW maintains a list of installers in the LA/Ventura area. Ask when you place your order.

TRADE PRICING
Standard trade discount: 20–40% off retail, depending on the line and your account level.
→ Kravet/Lee Jofa/Cole & Son: MAP pricing (specific formula; ask for trade rate)
→ Independents (Thibaut, Schumacher, Phillip Jeffries): straight trade discount off MSRP
→ DW pricing: trade account pricing across all lines; email for a trade rate card

LEAD TIMES
→ In-stock: ship in 3–5 business days
→ Made-to-order / dye lot: 4–8 weeks
→ Custom colorways: 8–16 weeks, minimum yardage requirements apply

---

THREE SPEC MISTAKES TO AVOID:
1. Not confirming the dye lot — order everything for a room from the same dye lot at once
2. Skipping the primer — walls that aren't properly primed cause bubbling and peeling
3. Specifying by the image only — always request a physical sample before specifying

---

NEXT ISSUE (Sep 9):
Project stories — three real projects where wallcovering solved a specific design problem.

— Steve | designerwallcoverings.com`,
    tips:['This is your most shareable issue — practical and bookmarkable', 'Offer to send the "fire rating doc checklist" as a follow-up to anyone who replies', 'The installer referral list is a strong relationship tool — build it and mention it here', 'Republish key sections as standalone posts throughout August']
  },

  nl3: {
    type:'newsletter', label:'LinkedIn Newsletter — Issue 3',
    title:'Issue 3: "Project Stories — Wallcovering in Real Spaces"',
    date:'Sep 9, 2026',
    body:`THE DW TRADE BRIEF — Issue 3
Sep 9, 2026

HEADLINE:
Project Stories: How Three Designers Used Wallcovering to Solve Real Problems

Abstract advice about wallcovering only goes so far. This issue: three real project scenarios and exactly how wallcovering solved the brief.

---

PROJECT 1: The Hotel Corridor That Needed to Feel Intentional

Brief: A 120-room boutique hotel in the Valley wanted their corridors to feel designed — not like every other hotel hallway. Budget was $40/sq ft installed wall finish, including labor.

Problem: Paint at that budget gives you a color. Not a feeling.

Solution: A commercial-grade geometric wallcovering in a muted charcoal and warm white. Pattern repeat 18". Class A fire rated. Installed at $38/sq ft all-in.

Result: The corridors became a design feature guests photographed and posted. The hotel used the corridor images in their marketing. The pattern read as intentional, not decorative.

Spec used: Thibaut contract-grade geometric, double-roll, Class A.

---

PROJECT 2: The Living Room That Couldn't Find Its Direction

Brief: A residential designer had a client with a large living room — 22-foot ceilings, generous windows — that had gone through four paint rounds and still felt unresolved. Client budget: high. Client patience: exhausted.

Problem: No wall treatment was anchoring the space. Everything felt temporary.

Solution: A single feature wall behind the fireplace in a large-scale floral (Schumacher "Pyne Hollyhock" in a custom colorway). The pattern dictated the color palette for the entire room — the furnishings, textiles, and drapery followed from the wallcovering.

Result: Client approved the full design direction in one meeting after the wallcovering was specified. The wallcovering was the decision, not the last thing added.

---

PROJECT 3: The Corporate Lobby Refresh on a Tight Timeline

Brief: A facility manager for a 30-story office building needed to refresh the lobby and main elevator bank in under 3 weeks. No major construction. Tenant improvement budget: $25k for the lobby wall surfaces.

Problem: Three weeks is tight for any wall treatment involving specialty finishes.

Solution: A pre-pasted commercial-grade grasscloth (natural fiber, Class B fire rated) that an installation team of two could hang in 4 days. The natural texture gave the lobby warmth without requiring custom color work.

Result: On time, on budget. The grasscloth held up through heavy daily traffic and still looked clean 18 months later. The facility manager now uses DW as the first call for every refresh cycle.

---

THE COMMON THREAD:
In each case, the wallcovering wasn't added to the project. It became the project's organizing decision.

That's the shift worth making in how you think about specifying it.

---

NEXT ISSUE (Oct 14):
Q4 wallcovering report — what's coming in 2027, and what to spec before year-end.

— Steve | designerwallcoverings.com`,
    tips:['Replace placeholder project details with real DW customer stories if you have them', 'Ask 2–3 of your set decorator/designer contacts if they\'d let you feature their project', 'This is the issue most likely to generate inbound replies — "this is exactly my situation"', 'Share each project story as a standalone post during September']
  },

  nl4: {
    type:'newsletter', label:'LinkedIn Newsletter — Issue 4',
    title:'Issue 4: "Q4 Wallcovering Report — What\'s Coming in 2027"',
    date:'Oct 14, 2026',
    body:`THE DW TRADE BRIEF — Issue 4
Oct 14, 2026

HEADLINE:
Q4 Wallcovering Report: What to Spec Before Year-End and What's Coming in 2027

We're in the planning window for 2027 projects. This issue: what we're seeing across the market and what it means for your upcoming specs.

---

THE 2026 WALLCOVERING YEAR IN REVIEW:

What moved:
→ Textural linens and grasscloths: the natural fiber category had its strongest year in a decade. Driven by the wellness-interior trend and biophilic design interest.
→ Large-scale botanical prints: statement walls, hospitality environments, residential feature walls. The "grandmillennial" aesthetic brought back pattern with confidence.
→ Contract-grade geometrics: commercial and hospitality designers who moved away from paint-only specs are now firmly in wallcovering territory.

What surprised:
→ Set decorators drove more residential inquiries than ever. The look they create for film and TV environments is influencing what residential clients want at home.
→ Facility managers are now multi-year clients, not one-off inquirers. Once a facility team specs wallcovering and sees the lifecycle, they build it into their rotation.

---

WHAT'S COMING IN 2027:

Three directions worth watching:

1. TONAL AND TEXTURAL (not pattern-forward)
   The next wave after bold botanicals is quiet texture — materials that read as sophisticated from across the room and only reveal their detail up close. Woven grass, metallic linen, embossed geometric.

2. MURAL SCALE
   Individual panels as art — a single large-format mural per room rather than repeating pattern. Particularly strong in luxury residential and boutique hospitality.

3. ACOUSTIC WALLCOVERING
   The work-from-home era left a lasting mark on what clients want from their walls. Acoustic fabric wallcovering (fabric-wrapped panels, Class A, sound-absorbing) is moving from commercial-only to premium residential.

---

HOW TO SPEC BEFORE YEAR-END:

If you have a project starting in Q1 2027 that includes wallcovering:
→ Sample request now — popular patterns and dye lots go on waitlist
→ Made-to-order / custom: 8–12 week lead time means ordering by end of October for February installation
→ Trade pricing locks in at time of sample request for 90 days

→ Email or DM me with your Q4/Q1 project specs and I'll pull relevant options.

---

Thank you for reading The DW Trade Brief this year. It has been a genuine pleasure connecting with the design community across LA and Ventura.

If this newsletter has been useful to you — forward it to one designer, architect, or facility manager you think would benefit. That's how the community grows.

See you in 2027.

— Steve
Designer Wallcoverings
designerwallcoverings.com`,
    tips:['This is the relationship-deepening issue — warm and specific', 'Include a genuine "thank you" — it lands differently in a newsletter than in social posts', 'The year-end spec urgency (lead times) is a real conversion driver — mention it prominently', 'Forward ask at the end of Issue 4 is your most important organic growth lever']
  },

  cp1: {
    type:'post-company', label:'Company Page Post',
    title:'Launch: "Wallcovering Is Having a Moment"',
    date:'Jun 24, 2026',
    body:`The wallcovering space is having a moment.

After a decade of "just paint it," designers across LA and Ventura are coming back to wallcovering — and the product landscape they're returning to is completely different from what they left.

What changed:

→ The pattern catalog. The houses that used to sell your grandmother's floral have completely rebuilt their ranges. Schumacher. Cole & Son. Kravet. Thibaut. Geometric, abstract, architectural, textural. The old stuff is a fraction of what exists now.

→ The lifecycle math. Commercial-grade wallcovering at $8–15/sq ft installed holds 10–15 years. Paint in the same corridor needs recoating every 3–5. Facility managers noticed this first.

→ The client ask. High-end clients have seen every possible shade of greige. They want texture. They want depth. They want a wall that does something.

We're Designer Wallcoverings — a trade-only source serving interior designers, architects, set decorators, and facility managers in the LA/Ventura area.

50,000+ patterns. Fast samples. Trade pricing. Local delivery.

If you're specifying a project and want to explore what's available, DM us or visit designerwallcoverings.com.

The wall is the most underused surface in the interior. 2026 is the year that changes.

#interiordesign #wallcovering #tradeonly #designerwallcoverings #LosAngeles`,
    tips:['Post to DW Company Page — this is the anchor launch post', 'Include an image: a grid of 4 strong pattern swatches from current inventory', 'Boost this post if the Company Page has budget for sponsored content', 'Pin this post to the top of the Company Page']
  },

  cp2: {
    type:'post-company', label:'Company Page Post',
    title:'Vendor Spotlight: Kravet + Cole & Son',
    date:'Jul 1, 2026',
    body:`Two houses. Completely different design languages. Both essential.

This week we're spotlighting two wallcovering lines that define opposite ends of the spectrum — and why both belong in a complete trade resource.

KRAVET
The anchor. The house that set decorators, hospitality designers, and commercial architects have built long-term relationships with because the quality floor never dips. Contract-grade durability. Pattern discipline. The kind of catalog that has an answer for every brief.

What we love about Kravet right now: their geometric and textural lines — not the signature prints, but the workhorse patterns that hold up in a corridor, a lobby, a commercial dining room and still look intentional 10 years later.

COLE & SON
The art director's choice. When a client wants to be surprised — when the brief is "make this room feel like someone with a point of view lives here" — Cole & Son is usually the answer.

Their large-scale botanicals, their archive prints reimagined in contemporary colorways, their collaboration editions. This is wallcovering as the statement piece, not the background.

Together: they cover every brief from "durable and architectural" to "I want this room to start a conversation."

We carry both. Trade pricing, fast samples, LA/Ventura delivery.

DM us or visit designerwallcoverings.com for pattern recommendations on your current project.

#kravet #coleandsontapestry #wallcovering #interiordesign #traderesources`,
    tips:['Include a side-by-side image: one Kravet geometric + one Cole & Son botanical', 'Tag the vendor LinkedIn pages in the post', 'This format (vendor spotlight) can be repeated monthly with different houses']
  },

  cp3: {
    type:'post-company', label:'Company Page Post',
    title:'Pattern Focus: Geometric + Textural for 2026',
    date:'Jul 15, 2026',
    body:`The strongest wallcovering specs we're seeing in Q3: bold geometrics in commercial, textural linens in residential.

Here's what's landing:

COMMERCIAL & HOSPITALITY
Geometric patterns in muted tones — charcoal/warm white, navy/brass, slate/cream. They read as architectural from across the room and hold up under repeat scrutiny. Contract-grade, fire-rated, durable in high-traffic. The designers specifying these have moved permanently away from paint-only specs.

RESIDENTIAL (LUXURY)
Natural-fiber textures — grasscloth, sisal weave, linen blend. The new version of these has nothing to do with the 1990s rattan-adjacent materials. They're tighter weaves, better color consistency, and they pair with contemporary furniture in a way the old grasscloth never could.

FEATURE WALLS (ALL CATEGORIES)
Large-scale botanical or abstract — one wall, full-height, the room's organizing statement. We're seeing this in high-end residential living rooms, boutique hotel suites, restaurant private dining. The wallcovering isn't decorating the room. It's defining it.

If you're specifying a Q3/Q4 project and want to see what fits your brief, DM us. We'll pull 5–6 relevant options and ship samples this week.

#wallcovering #interiordesigntrends #patternsandtextures #designerwallcoverings`,
    tips:['Include a 3-image carousel: one geometric, one grasscloth, one botanical', 'This type of "trend report" post drives saves — tell designers what to specify', 'Post on a Tuesday for maximum B2B LinkedIn reach']
  },

  cp4: {
    type:'post-company', label:'Company Page Post',
    title:'Hospitality Trends: What Hotels Are Specifying in 2026',
    date:'Aug 5, 2026',
    body:`The hospitality sector is back to full renovation cycles. Here's what's happening in wallcovering specification.

We've been working with facility managers, hospitality designers, and D/B firms on hotel and resort projects throughout LA and Ventura this year. Three things stand out:

1. CORRIDORS ARE GETTING THE ATTENTION THEY DESERVE
For years, hotel corridors got paint — neutral, scrubbable, forgettable. The better hotels are now treating the corridor as a designed environment. Wallcovering patterns that create a visual sequence from elevator to room. It changes how guests experience the property.

2. GUEST ROOMS: TEXTURE OVER PATTERN
In-room wallcovering is moving toward tone-on-tone texture — embossed, woven, tactile — rather than bold pattern. The theory: guests want the room to feel calm and premium, not visually busy. Textural wallcovering delivers warmth without competing with the furnishings.

3. PUBLIC SPACES: THE STATEMENT MOMENT
Lobbies, bars, restaurants — the F&B spaces within hotels are where bold choices are landing. Large-scale murals, oversized botanicals, graphic geometric panels. These are the spaces guests photograph and share.

We source for all three: contract-grade, fire-rated, volume pricing for multi-room specs.

Working on a hospitality project? DM us with the brief.

#hospitalitydesign #hotelrenovation #wallcovering #interiordesign #facilitymanagement`,
    tips:['Best post for targeting facility managers and hospitality D/B firms', 'Include a hotel corridor image or mood board if you have one', 'Tag any hospitality brands or design firms you have relationships with']
  },

  cp5: {
    type:'post-company', label:'Company Page Post',
    title:'Grasscloth & Natural Textiles: A Comeback Story',
    date:'Aug 19, 2026',
    body:`After a decade on the sidelines, natural-fiber wallcovering is back in serious spec conversations.

Here's why it left, and why it's different this time.

WHY IT FELL OUT OF FAVOR:
The grasscloth of the 1990s and 2000s had problems. Inconsistent color from dye lot to dye lot. Fibers that frayed at the seams. A raw, sometimes rough texture that read as casual rather than refined. And the color options were limited — beige, tan, or dark tan.

WHY IT'S BACK:
The manufacturing has changed. Current-generation natural fiber wallcoverings — grasscloth, sisal, jute, seagrass — are:

→ Tighter and more consistent weave (better dye lot stability)
→ Available in a real color range (deep greens, navy, warm charcoal, soft white)
→ Paired with modern backing that reduces fraying and simplifies installation
→ Often available in Class B fire rating for light commercial use

The texture reads differently in a contemporary interior. Alongside clean-lined furniture, a grasscloth wall isn't "beach house." It's material richness in an otherwise restrained room.

We're seeing it most in: home offices, primary bedrooms, dining rooms, boutique hotel rooms, and corporate reception areas.

Samples available. DM us or visit designerwallcoverings.com.

#grasscloth #naturalwallcovering #interiordesign #materialtrends #wallcovering`,
    tips:['Include a before/after: old grasscloth look vs. contemporary application', 'This post is great for tagging interior designers and architects in comments', 'Grasscloth is a high-search term — optimize this post for LinkedIn search']
  },

  cp6: {
    type:'post-company', label:'Company Page Post',
    title:'The Spec Process: From Sample Request to Installation',
    date:'Sep 2, 2026',
    body:`How wallcovering gets from a trade request to installed — a step-by-step breakdown for designers who haven't specified it before.

Step 1: SAMPLE REQUEST
You tell us the project type (residential/commercial/hospitality), the room, the vibe, and your budget per sq ft. We pull 5–8 relevant patterns and ship physical samples. Takes 3–5 business days.

Step 2: PATTERN SELECTION
You show samples to the client. Client picks a direction. We confirm availability and dye lot, check lead time (in-stock: 3–5 days; made-to-order: 4–8 weeks).

Step 3: YARDAGE CALCULATION
You give us room dimensions. We calculate yardage with 15–20% waste factor for the repeat. We'll also flag any unusual repeat sizes that need extra waste built in.

Step 4: ORDER + DYELOT CONFIRMATION
We confirm the dye lot before you finalize. All rolls from the same dye lot ship together. Critical: never mix dye lots in the same room.

Step 5: INSTALLATION
You'll need a professional installer (we maintain a referral list for LA/Ventura). Walls need to be primed with wallcovering primer before installation. Standard residential installation: 1–2 days per room. Commercial: project-dependent.

Step 6: DONE
A wall that reads as intentional. A client who tells their friends what you specified.

Questions on any step? DM us.

#wallcovering #interiordesign #specprocess #traderesources #designerwallcoverings`,
    tips:['Pin this post — it is evergreen and reusable', 'This is the most educational post in the series — perfect for new designer followers', 'Offer the installer referral list to anyone who DMs after this post']
  },

  cp7: {
    type:'post-company', label:'Company Page Post',
    title:'Q4 Preview: What to Watch in Wallcovering Design',
    date:'Sep 23, 2026',
    body:`Fall projects are about to spec. Here's what to watch in wallcovering heading into Q4.

THREE DIRECTIONS WORTH YOUR ATTENTION:

1. TONAL TEXTURE
The move after bold pattern is quiet sophistication — wallcovering that reveals itself on close inspection. Embossed linen. Metallic weave. Woven wool blend. The pattern is secondary to the material quality. Luxury residential and boutique hospitality are where this is landing first.

2. MURAL FORMAT
Single large-format panels as a room's art moment. Not repeating pattern — one image, one wall, full height. Increasingly available at accessible price points from the major houses. The installation is the same as standard wallcovering. The effect is completely different.

3. PERFORMANCE MEETS DESIGN
Contract-grade performance (scrubbable, fire-rated, moisture-resistant) is now available in design-forward patterns. The separation between "commercial wallcovering" (durable but institutional) and "residential wallcovering" (beautiful but fragile) is collapsing. The best new products work in both contexts.

Q4 ORDER TIMELINE NOTE:
If you have a project installing in January/February 2027, made-to-order wallcovering needs to be ordered by late October. In-stock products can ship in 3–5 days.

DM us with your Q4 project specs and we'll pull relevant options.

#wallcovering #interiordesign #q4trends #designerwallcoverings #LosAngeles`,
    tips:['Post with an image carousel: one example of each of the three directions', 'The order timeline note drives Q4 urgency — place it prominently', 'Tag any architects or designers who you know have Q4/Q1 projects in the pipeline']
  },

  cp8: {
    type:'post-company', label:'Company Page Post',
    title:'Year in Review: DW Trade Highlights 2026',
    date:'Oct 28, 2026',
    body:`What a year in wallcovering specification.

2026 was the year the trade community fully came back to wallcovering. Here's what we saw:

THE NUMBERS:
→ Sample requests up significantly from 2025
→ Hospitality and commercial specs outpacing residential for the first time
→ Set decorators now among our most active trade accounts
→ Natural fiber (grasscloth, sisal) saw its strongest sales in a decade

WHAT WE LEARNED:
The designers who made wallcovering work in 2026 did one thing differently: they specified it first, then built the room around it. Not as an accent. Not as an afterthought. As the room's organizing decision.

The facility managers who got the most value from wallcovering in 2026 did one thing: they ran the lifecycle math. 10–15 year material vs. 3–5 year paint. The conversation changed immediately.

WHAT'S COMING:
The product catalog heading into 2027 is the best we've seen. Tonal textures. Mural-format panels. Performance materials that work in both commercial and residential contexts.

THANK YOU:
To every designer, architect, set decorator, and facility manager who explored wallcovering with us this year. The conversations were worth more than any transaction.

Here's to 2027.

— Steve + the DW team
designerwallcoverings.com

#wallcovering #interiordesign #yearinreview #designerwallcoverings #tradecommunity`,
    tips:['Replace placeholder numbers with real DW metrics if available', 'The "thank you" tone is important — this post closes the year on relationship, not sales', 'Tag 3–5 designers/architects who were genuine customers this year', 'Save and republish this as the first post of 2027 with updated numbers']
  },

  pp1: {
    type:'post-personal', label:'Personal Post',
    title:'Post 1: "The Wall Problem"',
    date:'Jun 24, 2026',
    body:`The most underspecified surface in any interior is the wall.

Floors get $40/sq ft tile.
Ceilings get custom millwork.
Walls get a coat of paint and the designer moves on.

But walls are what your eye lands on first when you walk into a room.
They set the mood before the furniture does.

Wallcovering changes that equation — pattern, texture, depth, acoustic value — for a fraction of what a renovation costs.

I've been working with interior designers across LA and Ventura who've discovered this. Their clients notice the difference immediately.

The wall isn't the background. It's the brief.

— Steve
Designer Wallcoverings | designerwallcoverings.com

#interiordesign #wallcovering #designinspo #LosAngeles #VenturaCounty`,
    tips:['Your launch post — publish Monday June 24', 'Keep it short and opinion-forward — this format gets the most engagement on LinkedIn', 'Include one strong image: a dramatic wallcovering application in a luxury room']
  },

  pp2: {
    type:'post-personal', label:'Personal Post',
    title:'Post 2: "What Set Decorators Know"',
    date:'Jul 1, 2026',
    body:`Set decorators have known something residential designers are just catching up on:

Wallcovering transforms faster than anything else in a room.

On set, you need a space to read as "law office" or "luxury hotel" in days, not months. Wallcovering does that. Pattern does that. Texture does that.

What set decorators figured out: a 12-foot wall of a strong print communicates the entire room's character before a single piece of furniture arrives.

Residential and commercial clients want the same effect now.

That's why the best designers I work with are specifying wallcovering first, then building the room around it.

If you're an interior designer, architect, or set decorator in the LA/Ventura area — happy to connect. We carry patterns you won't find in showrooms.

#setdecorator #interiordesign #wallcovering #LosAngeles`,
    tips:['Target: set decorators and residential designers', 'Tag 1–2 set decorators you\'ve already followed and engaged with', 'Strong image: a film or TV set with dramatic wallcovering visible']
  },

  pp3: {
    type:'post-personal', label:'Personal Post',
    title:'Post 3: "The Spec Question" (for Architects)',
    date:'Jul 8, 2026',
    body:`Architects: when was the last time you specified wallcovering beyond the bathroom accent wall?

The most forward-thinking residential and hospitality architects I work with are using it differently now:

→ Full living room walls in grasscloth (natural texture, acoustic benefit, calm)
→ Entryways in bold geometric patterns (signals the home's design intention immediately)
→ Commercial corridors in high-performance textiles (contract-grade, fire-rated)
→ Hotel rooms in custom colorways that don't exist in paint

The reason wallcovering fell out of architectural spec for 20 years: it got associated with 1980s florals. That catalog doesn't exist anymore.

What does exist: 50,000+ patterns from the world's best design houses. We carry most of them and can source the rest.

If you're specifying a residential or commercial project in LA/Ventura, let's talk.

#architecture #interiorarchitecture #wallcovering #luxurydesign`,
    tips:['Target: architects (Tier 5 from your follow list)', 'Publish after you\'ve been following and engaging with architects for 2+ weeks', 'Image: a residential or commercial architectural interior with strong wallcovering']
  },

  pp4: {
    type:'post-personal', label:'Personal Post',
    title:'Post 5: "The Renovation Gap" (for Facility Managers)',
    date:'Aug 5, 2026',
    body:`Facility managers and property managers: a number worth knowing.

Commercial-grade wallcovering: 10–15 year lifecycle before refresh.
Paint in a high-traffic corridor: 3–5 years before it scuffs, fades, and needs recoating.

Over 15 years, you're repainting that corridor 3–5 times.
Each repaint: material cost + labor + downtime.

The wallcovering installs once. One labor charge. No downtime for years.

The math changes when you run it over a decade.

I work with facility teams at hotels, corporate campuses, and apartment complexes throughout LA and Ventura who've made this switch. The ones who've done the lifecycle math don't go back to paint-only specs.

If you manage a property with ongoing renovation cycles — happy to share what other facility teams in your category are specifying.

DM me or visit designerwallcoverings.com.

#facilitymanagement #propertymanagement #commercialinteriors #wallcovering #LosAngeles`,
    tips:['Target: Facility Managers (Tier 6)', 'The lifecycle math is the single most compelling argument for this audience — lead with it', 'Image: a commercial corridor or hotel lobby with clean wallcovering installation']
  },

  pp5: {
    type:'post-personal', label:'Personal Post',
    title:'Post 6: "The Design/Build Advantage"',
    date:'Aug 12, 2026',
    body:`Design/build firms have a unique advantage most design-only or build-only firms don't:

You control spec AND execution.

Which means when you specify wallcovering, it actually gets installed correctly.
No value-engineering it out by a GC who doesn't know the vendor.
No substitution with a cheaper grade mid-build.
No losing the spec on the second round of budget cuts.

The D/B firms doing the most interesting interior work in LA right now are using this to differentiate — wallcovering as a signature material choice that reads as intentional, not default.

One relationship with a good wallcovering source gives you specification depth across residential, commercial, and hospitality projects at every budget level.

We work with D/B principals in Ventura and LA who want trade-only sourcing, spec support, and pricing that holds at project volume.

Happy to connect if this is relevant to your pipeline.

#designbuild #interiordesign #architecture #wallcovering #LosAngeles`,
    tips:['Target: Design/Build firms (Tier 7 — Platinum tier)', 'The "you control both sides" argument is specific to D/B and very compelling', 'Image: a completed D/B project with visible wallcovering in the interior']
  },

  pp6: {
    type:'post-personal', label:'Personal Post',
    title:'Post 7: "Pattern Focus — Color as Architecture"',
    date:'Aug 26, 2026',
    body:`The best wallcovering specs I've seen this year don't add pattern to a room.

They use pattern to define the room's character before anything else arrives.

There's a difference between:
— A room with a patterned accent wall
— A room whose entire design direction came from the wallcovering selection

The designers working at the second level understand something about pattern that takes a few projects to internalize:

A strong print creates a color palette.
The palette gives you the furniture direction.
The furniture gives you the textile choices.
The whole room flows from the wall.

Most designers spec the room, then add wallcovering.
The best ones spec the wallcovering, then design the room.

If this is a conversation you want to have about your current project — I'm here.

#interiordesign #patterndesign #wallcovering #colortheory #designprocess`,
    tips:['Best for interior designers — this is a design philosophy post, not a product pitch', 'Include an image: a before/after showing a room anchored by wallcovering', 'The ending is an open invitation — it should generate DMs from designers with active projects']
  },

  pp7: {
    type:'post-personal', label:'Personal Post',
    title:'Post 9: "Mid-Year Wallcovering Check-In"',
    date:'Sep 16, 2026',
    body:`Nine months into 2026 and a clear pattern has emerged in what's speccing at the top of the market.

Three things I didn't predict at the start of the year:

1. SET DECORATORS BECAME RESIDENTIAL DESIGN'S TASTE-MAKERS
The wallcovering choices I'm seeing in high-end residential interiors now look a lot like what set decorators have been doing on commercial productions for years. Bold, environmental, character-defining. The "film look" crossed over.

2. FACILITY MANAGERS ARE NOW DESIGN-LED
The property managers and hotel facility directors I talk to now — they're not asking "what's durable?" They're asking "what reads as premium AND is durable?" The brief has evolved.

3. THE PRODUCT GOT DRAMATICALLY BETTER
Across every price point. The entry-level grasscloth in 2026 looks better than mid-tier grasscloth looked in 2020. The gap between "affordable" and "luxury" in wallcovering closed significantly.

Where are you seeing this in your projects? Genuinely curious.

#interiordesign #wallcovering #designtrends #LosAngeles`,
    tips:['This is an engagement-first post — it ends with a question that invites comments', 'The comment section on this post is where the real conversations start', 'Respond to every comment personally and keep the thread going']
  },

  pp8: {
    type:'post-personal', label:'Personal Post',
    title:'Post 13: "Why Wallcovering Is a Q1 2027 Decision"',
    date:'Oct 7, 2026',
    body:`Most designers and architects I talk to think of wallcovering as a finishing decision.

The best ones I know treat it as a starting point.

Here's the practical reason this matters heading into Q4:

Lead times on made-to-order wallcovering are 8–12 weeks.

If you have a project installing in January or February 2027 — and wallcovering is or could be in the spec — the decision window is closing.

Custom colorways and specialty products need to be ordered by late October to hit a January install.
In-stock products can ship in 3–5 days but the selection is smaller.

I'm not trying to create urgency where there isn't any. But if you've been on the fence about a wallcovering spec for an upcoming project, now is the time to at least pull samples.

It costs nothing. Takes 3 days to arrive. And it might change the direction of the whole project.

DM me with your brief.

#interiordesign #wallcovering #projectplanning #Q42026 #designerwallcoverings`,
    tips:['This is the urgency post — publish it early October', 'The lead time information is genuinely useful and creates real urgency without being pushy', 'Every person who DMs after this post is a hot lead — respond within the hour']
  }
};

const STATUS_KEY = 'dw_li_content_status';
function getStatuses() { try { return JSON.parse(localStorage.getItem(STATUS_KEY)||'{}'); } catch(e) { return {}; } }
function saveStatuses(s) { localStorage.setItem(STATUS_KEY, JSON.stringify(s)); }

let currentModal = null;

function openModal(id) {
  const c = CONTENT[id];
  if (!c) return;
  currentModal = id;
  const statuses = getStatuses();
  const status = statuses[id] || 'draft';

  document.getElementById('modal-type-badge').innerHTML = `<span class="type-badge ${c.type==='event'?'tb-event':c.type==='newsletter'?'tb-newsletter':c.type==='post-company'?'tb-company':'tb-personal'}">${c.label}</span>`;
  document.getElementById('modal-title').textContent = c.title;
  document.getElementById('modal-meta').innerHTML = `<span>📅 ${c.date}</span>`;
  document.getElementById('modal-body').textContent = c.body;

  const tips = c.tips || [];
  document.getElementById('modal-tips').innerHTML = tips.length ? `<h4>Pro Tips</h4><ul>${tips.map(t=>`<li>${t}</li>`).join('')}</ul>` : '';

  ['draft','ready','live'].forEach(s => {
    const btn = document.getElementById('st-'+s);
    btn.className = 'st-btn' + (status===s ? ` active-${s}` : '');
  });

  document.getElementById('modal-overlay').classList.add('open');
}

function closeModal() { document.getElementById('modal-overlay').classList.remove('open'); currentModal = null; }
function closeModalOutside(e) { if (e.target === document.getElementById('modal-overlay')) closeModal(); }

function setStatus(s) {
  if (!currentModal) return;
  const statuses = getStatuses();
  statuses[currentModal] = s;
  saveStatuses(statuses);
  ['draft','ready','live'].forEach(st => {
    const btn = document.getElementById('st-'+st);
    btn.className = 'st-btn' + (s===st ? ` active-${st}` : '');
  });
  const dotClass = s==='draft'?'s-draft':s==='ready'?'s-ready':'s-live';
  ['dot-','dot2-','dot3-'].forEach(pfx => {
    const d = document.getElementById(pfx+currentModal);
    if (d) { d.className = 'status-dot ' + dotClass; }
  });
  updateProgress();
  flash(s==='live'?'Marked as Published ✅':s==='ready'?'Marked as Scheduled ⏰':'Moved to Draft 📝');
}

function copyContent() {
  if (!currentModal) return;
  const text = document.getElementById('modal-body').textContent;
  navigator.clipboard.writeText(text).then(() => flash('Copied to clipboard ✓'));
}

function showTab(id, el) {
  document.querySelectorAll('.panel').forEach(p => p.classList.remove('active'));
  document.querySelectorAll('.tab').forEach(t => t.classList.remove('active'));
  document.getElementById('panel-'+id).classList.add('active');
  el.classList.add('active');
}

function updateProgress() {
  const statuses = getStatuses();
  const ids = Object.keys(CONTENT);
  const live = ids.filter(id => statuses[id]==='live').length;
  const ready = ids.filter(id => statuses[id]==='ready').length;
  const draft = ids.length - live - ready;

  document.getElementById('pr-live').textContent = live;
  document.getElementById('pr-ready').textContent = ready;
  document.getElementById('pr-draft').textContent = draft;

  const evIds = ['ev1','ev2','ev3','ev4','ev5'];
  const nlIds = ['nl1','nl2','nl3','nl4'];
  const cpIds = ['cp1','cp2','cp3','cp4','cp5','cp6','cp7','cp8'];
  const ppIds = ['pp1','pp2','pp3','pp4','pp5','pp6','pp7','pp8'];

  function pct(arr) { const done = arr.filter(id => statuses[id]==='live').length; return { pct: done/arr.length*100, frac: `${done}/${arr.length}` }; }

  const ev = pct(evIds), nl = pct(nlIds), cp = pct(cpIds), pp = pct(ppIds);
  document.getElementById('pb-events').style.width = ev.pct+'%';
  document.getElementById('pb-nl').style.width = nl.pct+'%';
  document.getElementById('pb-cp').style.width = cp.pct+'%';
  document.getElementById('pb-pp').style.width = pp.pct+'%';
  document.getElementById('pf-events').textContent = ev.frac;
  document.getElementById('pf-nl').textContent = nl.frac;
  document.getElementById('pf-cp').textContent = cp.frac;
  document.getElementById('pf-pp').textContent = pp.frac;
}

function flash(msg) {
  const el = document.getElementById('flash');
  el.textContent = msg; el.classList.add('show');
  setTimeout(() => el.classList.remove('show'), 2000);
}

document.addEventListener('keydown', e => { if (e.key==='Escape') closeModal(); });
updateProgress();
</script>
</body>
</html>