diff --git a/data/operations.json b/data/operations.json index f9521ca..215bdee 100644 --- a/data/operations.json +++ b/data/operations.json @@ -36,6 +36,11 @@ } ], "state_of_play": "Prelaunch phase. CRM has 89 contacts (60 YouTube creators on Hold, 1 homepage chat lead). 0 subscriptions, 0 influencers onboarded, 0 cold emails sent. The site is live at derez.ai with pricing, coupon badges (friends950, creator950, friends499, friends1750), and Plausible analytics. Next milestone: first paying customer.", + "comms": { + "inbox": { "total": 4, "last35h": 2 }, + "sent": { "total": 8, "last35h": 2 }, + "alerts": 1 + }, "recommendations": [ "Prioritise the top 20 YouTube creators from the 60 collected — these are your most winnable influencer channel.", "Unlock cold email outreach by populating real business emails for those 20 creators. The templates and coupons are ready.", diff --git a/operations.html b/operations.html index 2afc923..9d2a502 100644 --- a/operations.html +++ b/operations.html @@ -368,8 +368,95 @@ font-weight: 700; } + /* ── Communications ──────────────────────── */ + .comms-grid { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; + } + .comms-card { + background: var(--bg-card); + border: 1px solid var(--border); + border-radius: var(--radius-card); + padding: 20px; + } + .comms-card h3 { + font-size: 12px; + text-transform: uppercase; + letter-spacing: 0.06em; + color: var(--accent); + margin-bottom: 10px; + display: flex; + align-items: center; + gap: 8px; + } + .comms-card .comms-summary { + display: flex; + gap: 20px; + margin-bottom: 12px; + } + .comms-card .comms-stat { + text-align: center; + } + .comms-card .comms-stat-num { + font-size: 24px; + font-weight: 700; + color: var(--text); + } + .comms-card .comms-stat-label { + font-size: 10px; + color: var(--text-muted); + text-transform: uppercase; + letter-spacing: 0.04em; + } + .comms-list { list-style: none; } + .comms-list li { + font-size: 12px; + padding: 6px 0; + border-bottom: 1px solid rgba(10,48,96,0.3); + display: flex; + align-items: flex-start; + gap: 8px; + line-height: 1.5; + } + .comms-list li:last-child { border-bottom: none; } + .comms-list .comms-time { + color: var(--text-muted); + font-size: 11px; + white-space: nowrap; + flex-shrink: 0; + min-width: 60px; + } + .comms-list .comms-subj { + color: var(--text); + } + .comms-list .comms-detail { + color: var(--text-muted); + font-size: 11px; + } + .comms-list .comms-from { + color: var(--accent); + font-size: 11px; + } + .comms-alert { + background: var(--bg-card); + border: 1px solid rgba(255,59,59,0.3); + border-left: 3px solid var(--danger); + border-radius: var(--radius-card); + padding: 12px 16px; + margin-top: 10px; + font-size: 12px; + display: flex; + align-items: flex-start; + gap: 8px; + } + .comms-alert .alert-icon { color: var(--danger); flex-shrink: 0; font-size: 14px; } + .comms-alert .alert-body { color: var(--text); } + .comms-alert .alert-detail { color: var(--text-muted); font-size: 11px; margin-top: 2px; } + @media (max-width: 900px) { .campaign-grid { grid-template-columns: 1fr; } + .comms-grid { grid-template-columns: 1fr; } .goals-grid { grid-template-columns: repeat(2, 1fr); } .strategy-grid { grid-template-columns: 1fr; } } @@ -427,6 +514,17 @@ + +