// Compass — shows today's active work block + decision rules from MC Operating Manual. // Collapses to a thin strip. Keeps MC anchored to her own operating system. const WEEKLY_BLOCKS = { 1: { day: 'Monday', name: 'CEO Hour', duration: '60 min', focus: 'Numbers. Pipeline. One structural fix. No clients.', accent: '#6366f1' }, 2: { day: 'Tuesday', name: 'Delivery Block', duration: '3–4 hrs', focus: 'Deep client work. Email off. Phone silent.', accent: '#059669' }, 3: { day: 'Wednesday', name: 'Delivery Block', duration: '3–4 hrs', focus: 'Deep client work. Email off. Phone silent.', accent: '#059669' }, 4: { day: 'Thursday', name: 'Delivery Block', duration: '3–4 hrs', focus: 'Deep client work. Email off. Phone silent.', accent: '#059669' }, 5: { day: 'Friday', name: 'Outreach + Sales', duration: '90 min', focus: '3 touches. 1 published piece. Follow-ups.', accent: '#d97706' }, 6: { day: 'Saturday', name: 'Simplify', duration: '30 min', focus: 'What broke this week? Kill one distraction.', accent: '#7c3aed' }, 0: { day: 'Sunday', name: 'Numbers + Plan', duration: '20 min', focus: 'Money in/out. Runway. Top 3 priorities for next week.', accent: '#2563eb' }, }; const DECISION_RULES = [ "If it isn't structured, it doesn't scale — refuse the work.", "If a client wants symptoms fixed without diagnosis — decline or re-scope.", "If saying yes breaks the 8-week pipeline buffer — say no.", "If it can be templated, automated, or delegated — it must be, before next quarter.", "If the answer isn't in the data — get the data before deciding.", "If chaos feels productive, the structure has failed — stop and rebuild.", ]; const NON_NEGOTIABLES = [ "optimer is always lowercase. optimerAcademy is one word, capital A.", "Diagnostic before deliverable. Always.", "No invented information — if unknown, say so.", "Direct communication, even when uncomfortable. Diplomacy is not dilution.", "5 full days off, twice a year minimum. Business must run without me.", '"Not now" is a complete sentence.', ]; function Compass() { const [open, setOpen] = React.useState(false); const [tab, setTab] = React.useState('block'); const day = new Date().getDay(); const block = WEEKLY_BLOCKS[day]; const stripStyle = { display: 'flex', alignItems: 'center', gap: 12, padding: '8px 20px', cursor: 'pointer', background: 'var(--surface)', borderBottom: '1px solid var(--border)', fontFamily: 'var(--font-mono)', fontSize: 12, userSelect: 'none', }; const bodyStyle = { background: 'var(--surface)', borderBottom: '1px solid var(--border)', padding: '0 20px 16px', fontFamily: 'var(--font-mono)', fontSize: 12, }; const tabsStyle = { display: 'flex', gap: 2, marginBottom: 14, paddingTop: 12, borderBottom: '1px solid var(--border)', paddingBottom: 10, }; const tabBtn = (k, label) => ({ padding: '4px 12px', borderRadius: 6, border: 'none', cursor: 'pointer', fontFamily: 'var(--font-mono)', fontSize: 11, fontWeight: 600, background: tab === k ? block.accent : 'transparent', color: tab === k ? '#fff' : 'var(--fg-muted)', transition: 'all .15s', }); return (