{"id":25,"date":"2026-09-23T17:27:07","date_gmt":"2026-09-23T14:27:07","guid":{"rendered":"https:\/\/makelifenotsmoke.com\/?page_id=25"},"modified":"2026-10-04T16:35:03","modified_gmt":"2026-10-04T13:35:03","slug":"diary","status":"publish","type":"page","link":"https:\/\/makelifenotsmoke.com\/es\/diary\/","title":{"rendered":"Diario"},"content":{"rendered":"\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\">\n<title>Progress Diary \u2014 Track Your Smoke-Free Days | MakeLifeNotSmoke<\/title>\n<meta name=\"description\" content=\"Track your 30-day quit smoking journey day by day. Free interactive diary \u2014 log cravings, mood, and what helped. Export to CSV or Excel.\">\n<style>\n    * { margin: 0; padding: 0; box-sizing: border-box; }\n    body {\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n        background-color: #f5f5f7;\n        color: #1d1d1f;\n        line-height: 1.5;\n        padding: 1rem;\n    }\n    .container { max-width: 1200px; margin: 0 auto; }\n    .header {\n        background: #ffffff;\n        border-radius: 28px;\n        padding: 1.5rem;\n        margin-bottom: 1.5rem;\n        box-shadow: 0 1px 3px rgba(0,0,0,0.05);\n        border: 1px solid #e9e9ef;\n    }\n    h1 { font-size: 1.8rem; font-weight: 700; letter-spacing: -0.01em; margin-bottom: 0.5rem; }\n    .subhead { color: #6e6e73; margin-bottom: 1rem; }\n    .badge-tip {\n        background: #eef4ff;\n        border-left: 4px solid #0066cc;\n        padding: 1rem 1.2rem;\n        border-radius: 20px;\n        margin: 1rem 0;\n        font-size: 0.9rem;\n    }\n    .btn-group { display: flex; flex-wrap: wrap; gap: 0.8rem; margin: 1.5rem 0 0.5rem; }\n    .btn {\n        display: inline-flex;\n        align-items: center;\n        gap: 0.5rem;\n        background: #0066cc;\n        color: white;\n        text-decoration: none;\n        padding: 0.7rem 1.3rem;\n        border-radius: 40px;\n        font-weight: 500;\n        font-size: 0.9rem;\n        transition: 0.2s;\n        border: none;\n        cursor: pointer;\n    }\n    .btn-outline { background: transparent; border: 1px solid #0066cc; color: #0066cc; }\n    .btn-outline:hover { background: #0066cc10; }\n    .btn:hover { background: #004d99; }\n    .table-wrapper {\n        background: #ffffff;\n        border-radius: 24px;\n        border: 1px solid #e9e9ef;\n        overflow-x: auto;\n        margin-bottom: 1.5rem;\n    }\n    table { width: 100%; border-collapse: collapse; font-size: 0.8rem; min-width: 700px; }\n    th, td {\n        border-bottom: 1px solid #e5e5ea;\n        padding: 0.8rem 0.6rem;\n        text-align: left;\n        vertical-align: top;\n    }\n    th {\n        background: #f9f9fb;\n        font-weight: 600;\n        font-size: 0.75rem;\n        color: #1d1d1f;\n        position: sticky;\n        top: 0;\n    }\n    input, select {\n        width: 100%;\n        padding: 0.5rem 0.4rem;\n        border: 1px solid #d9d9df;\n        border-radius: 12px;\n        font-size: 0.8rem;\n        font-family: inherit;\n        background: #fff;\n        transition: 0.15s;\n    }\n    input:focus, select:focus {\n        outline: none;\n        border-color: #0066cc;\n        box-shadow: 0 0 0 2px #0066cc20;\n    }\n    .day-col { font-weight: 600; background-color: #fafafc; width: 55px; text-align: center; }\n    .rate-select { width: 70px; text-align: center; }\n    .small-note { font-size: 0.75rem; color: #6e6e73; margin-top: 0.5rem; }\n    footer { text-align: center; padding: 1.5rem 0; color: #8e8e93; font-size: 0.75rem; }\n    @media (max-width: 700px) {\n        th, td { padding: 0.6rem 0.4rem; }\n        .btn { padding: 0.6rem 1rem; font-size: 0.85rem; }\n    }\n<\/style>\n\n<div class=\"container\">\n    <div class=\"header\">\n        <h1>\ud83d\udccb Progress Diary<\/h1>\n        <div class=\"subhead\">30 days of freedom \u2014 fill in each evening (takes 3 minutes)<\/div>\n        <div class=\"badge-tip\">\n            \ud83d\udca1 <strong>How to fill it in:<\/strong><br>\n            \u2022 <strong>Date<\/strong> \u2014 enter today's date.<br>\n            \u2022 <strong>NRT Gum (pcs)<\/strong> \u2014 how many nicotine gum pieces you used today. If you're on the natural path, enter 0.<br>\n            \u2022 <strong>Craving (1\u201310)<\/strong> \u2014 rate how strong the urge to smoke was: 1 \u2014 almost none, 10 \u2014 unbearable.<br>\n            \u2022 <strong>Mood<\/strong> \u2014 one word or emoji (calm, irritated, proud, tired, etc.).<br>\n            \u2022 <strong>What Helped<\/strong> \u2014 gum, a walk, breathing, the affirmation \"I am free,\" support from a loved one.\n        <\/div>\n        <div class=\"btn-group\">\n            <button class=\"btn\" id=\"saveBtn\">\ud83d\udcbe Save to File (CSV)<\/button>\n            <button class=\"btn btn-outline\" id=\"resetBtn\">\u27f3 Clear All Fields<\/button>\n        <\/div>\n        <div class=\"small-note\">\u2705 Your data is saved only on your device. You can edit the table right in your browser, then save it to your computer (Excel, Google Sheets).<br>\n        <strong>The downloaded CSV file can be opened in Excel, Google Sheets, or any spreadsheet app.<\/strong><\/div>\n    <\/div>\n\n    <div class=\"table-wrapper\">\n        <table id=\"diaryTable\">\n            <thead>\n                <tr>\n                    <th>Day<\/th>\n                    <th>Date<\/th>\n                    <th>NRT Gum (pcs)<\/th>\n                    <th>Craving (1\u201310)<\/th>\n                    <th>Mood<\/th>\n                    <th>What Helped<\/th>\n                <\/tr>\n                <tr style=\"background:#ffffff;\">\n                    <th colspan=\"6\" style=\"font-weight: normal; background:#fef7e0; font-size:0.7rem;\">\ud83d\udc47 Fill in every evening. Day 0 = preparation. Days 1\u201330 = your path to freedom.<\/th>\n                <\/tr>\n            <\/thead>\n            <tbody id=\"tableBody\">\n                <!-- rows generated by JS -->\n            <\/tbody>\n        <\/table>\n    <\/div>\n\n    <div style=\"background: #e6f7e6; border-radius: 20px; padding: 1rem; margin-top: 0.5rem;\">\n    <strong>\ud83c\udfaf The \"I Am Free\" Method:<\/strong> for every smoke-free day, add one letter to the word <strong>IAMFREE<\/strong>.\n    Day 1 = I. Day 2 = IA. Day 3 = IAM. Day 4 = IAMF. Day 5 = IAMFR. Day 6 = IAMFRE. Day 7 = IAMFREE! \u2192 small reward (a book, a film).\n    30 days = four \"IAMFREE\"s in a row \u2192 big reward (something you've wanted for a long time).\n    Mark your wins in the \"Mood\" column \u2014 write \"IAMFREE!\" or add \ud83c\udfc6.\n<\/div>\n\n    <footer>\n        MakeLifeNotSmoke \u2014 no coaches, no sales, just your choice and clear steps.<br>\n        <strong>makelifenotsmoke.com<\/strong><br>\n        You can print this diary or copy the data into any spreadsheet.\n    <\/footer>\n<\/div>\n\n<script>\n    \/\/ Generate rows for days 0\u201330\n    const days = [];\n    for (let i = 0; i <= 30; i++) {\n        days.push(i);\n    }\n\n    const tbody = document.getElementById('tableBody');\n\n    function createRow(day) {\n        const tr = document.createElement('tr');\n\n        \/\/ Day\n        const tdDay = document.createElement('td');\n        tdDay.className = 'day-col';\n        tdDay.textContent = day;\n        tr.appendChild(tdDay);\n\n        \/\/ Date\n        const tdDate = document.createElement('td');\n        const dateInput = document.createElement('input');\n        dateInput.type = 'date';\n        dateInput.placeholder = 'YYYY-MM-DD';\n        dateInput.value = '';\n        tdDate.appendChild(dateInput);\n        tr.appendChild(tdDate);\n\n        \/\/ NRT Gum\n        const tdGum = document.createElement('td');\n        const gumInput = document.createElement('input');\n        gumInput.type = 'number';\n        gumInput.placeholder = '0';\n        gumInput.value = '';\n        gumInput.min = '0';\n        gumInput.step = '1';\n        tdGum.appendChild(gumInput);\n        tr.appendChild(tdGum);\n\n        \/\/ Craving 1-10\n        const tdCraving = document.createElement('td');\n        const cravingSelect = document.createElement('select');\n        cravingSelect.className = 'rate-select';\n        const options = ['', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10'];\n        options.forEach(val => {\n            const opt = document.createElement('option');\n            opt.value = val;\n            opt.textContent = val === '' ? '\u2014' : val;\n            cravingSelect.appendChild(opt);\n        });\n        tdCraving.appendChild(cravingSelect);\n        tr.appendChild(tdCraving);\n\n        \/\/ Mood\n        const tdMood = document.createElement('td');\n        const moodInput = document.createElement('input');\n        moodInput.type = 'text';\n        moodInput.placeholder = 'calm, proud, tired...';\n        moodInput.value = '';\n        tdMood.appendChild(moodInput);\n        tr.appendChild(tdMood);\n\n        \/\/ What Helped\n        const tdHelp = document.createElement('td');\n        const helpInput = document.createElement('input');\n        helpInput.type = 'text';\n        helpInput.placeholder = 'gum, walk, breathing, affirmation...';\n        helpInput.value = '';\n        tdHelp.appendChild(helpInput);\n        tr.appendChild(tdHelp);\n\n        return tr;\n    }\n\n    \/\/ Fill table\n    days.forEach(day => {\n        tbody.appendChild(createRow(day));\n    });\n\n    \/\/ Export to CSV\n    function exportToCSV() {\n        const rows = [];\n        rows.push(['Day', 'Date', 'NRT Gum (pcs)', 'Craving (1-10)', 'Mood', 'What Helped']);\n\n        const tableRows = document.querySelectorAll('#diaryTable tbody tr');\n        tableRows.forEach(row => {\n            const cells = row.querySelectorAll('td');\n            if (cells.length >= 6) {\n                const day = cells[0].textContent.trim();\n                const dateInput = cells[1].querySelector('input');\n                const date = dateInput ? dateInput.value : '';\n                const gumInput = cells[2].querySelector('input');\n                const gum = gumInput ? gumInput.value : '';\n                const cravingSelect = cells[3].querySelector('select');\n                const craving = cravingSelect ? cravingSelect.value : '';\n                const moodInput = cells[4].querySelector('input');\n                const mood = moodInput ? moodInput.value : '';\n                const helpInput = cells[5].querySelector('input');\n                const help = helpInput ? helpInput.value : '';\n                rows.push([day, date, gum, craving, mood, help]);\n            }\n        });\n\n        const csvContent = rows.map(row =>\n            row.map(cell => {\n                if (typeof cell === 'string' && (cell.includes(',') || cell.includes('\"'))) {\n                    return `\"${cell.replace(\/\"\/g, '\"\"')}\"`;\n                }\n                return cell;\n            }).join(',')\n        ).join('\\n');\n\n        \/\/ BOM for Excel Cyrillic\/Unicode compatibility\n        const blob = new Blob([\"\\uFEFF\" + csvContent], { type: 'text\/csv;charset=utf-8;' });\n        const link = document.createElement('a');\n        const url = URL.createObjectURL(blob);\n        link.href = url;\n        link.setAttribute('download', 'progress_diary_makelifenotsmoke.csv');\n        document.body.appendChild(link);\n        link.click();\n        document.body.removeChild(link);\n        URL.revokeObjectURL(url);\n    }\n\n    \/\/ Clear all fields\n    function resetAllFields() {\n        const allInputs = document.querySelectorAll('#diaryTable input, #diaryTable select');\n        allInputs.forEach(field => {\n            if (field.tagName === 'SELECT') {\n                field.selectedIndex = 0;\n            } else {\n                field.value = '';\n            }\n        });\n    }\n\n    document.getElementById('saveBtn').addEventListener('click', exportToCSV);\n    document.getElementById('resetBtn').addEventListener('click', resetAllFields);\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Progress Diary \u2014 Track Your Smoke-Free Days | MakeLifeNotSmoke \ud83d\udccb Progress Diary 30 days of freedom \u2014 fill in each evening (takes 3 minutes) \ud83d\udca1 How to fill it in: \u2022 Date \u2014 enter today's date. \u2022 NRT Gum (pcs) \u2014 how many nicotine gum pieces you used today. If you're on the natural path,...<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-25","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/pages\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":4,"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/pages\/25\/revisions"}],"predecessor-version":[{"id":219,"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/pages\/25\/revisions\/219"}],"wp:attachment":[{"href":"https:\/\/makelifenotsmoke.com\/es\/wp-json\/wp\/v2\/media?parent=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}