.checklist-page { padding: 48px 0 80px; }
        .checklist-page h1 { font-size: 2rem; margin-bottom: 8px; }
        .checklist-page .subtitle { color: var(--gray); margin-bottom: 40px; }

        .progress-bar-wrapper {
            max-width: 700px;
            margin: 0 auto 40px;
        }
        .progress-label {
            display: flex; justify-content: space-between;
            margin-bottom: 8px; font-size: 0.9rem; color: var(--gray);
        }
        .progress-track {
            width: 100%; height: 12px;
            background: var(--gray-border); border-radius: 6px;
            overflow: hidden;
        }
        .progress-fill {
            height: 100%;
            background: linear-gradient(90deg, var(--amber), var(--amber-light));
            border-radius: 6px;
            transition: width 0.5s ease;
            width: 0%;
        }
        .progress-pct { font-weight: 700; color: var(--link); }

        .checklist-cats {
            display: flex; gap: 8px; flex-wrap: wrap;
            margin-bottom: 32px; justify-content: center;
        }
        .checklist-cats button {
            display: inline-flex; align-items: center; gap: 5px;
            min-height: 44px;
            padding: 8px 18px; border: 1px solid var(--gray-border);
            border-radius: 20px; background: var(--white); cursor: pointer;
            font-size: 0.85rem; color: var(--dark); transition: all 0.15s;
        }
        .checklist-cats button:hover { border-color: var(--amber-light); }
        .checklist-cats button.active {
            background: var(--amber); color: #1c1917; border-color: var(--amber);
        }
        .checklist-cats button.active .icon-theme { color: #1c1917; }
        :root[data-theme="dark"] .checklist-cats button { background: #292524; border-color: #44403c; color: #d6d3d1; }
        :root[data-theme="dark"] .checklist-cats button:hover { border-color: var(--amber); }
        :root[data-theme="dark"] .checklist-cats button.active { background: var(--amber); color: #1c1917; border-color: var(--amber); }
        :root[data-theme="dark"] .checklist-cats button.active .icon-theme { color: #1c1917; }
        :root[data-theme="warm"] .checklist-cats button { background: #fffef5; color: var(--dark); }
        :root[data-theme="warm"] .checklist-cats button.active .icon-theme { color: #1c1917; }

        .checklist-group { display: none; }
        .checklist-group.active { display: block; }

        .checklist-item {
            display: flex; align-items: flex-start; gap: 14px;
            padding: 16px 20px;
            border: 1px solid var(--gray-border);
            border-radius: var(--radius);
            margin-bottom: 12px;
            transition: background 0.2s, border-color 0.2s;
            max-width: 700px; margin-left: auto; margin-right: auto;
        }
        .checklist-item.completed {
            background: rgba(217,119,6,0.08);
            border-color: var(--amber-light);
        }
        :root[data-theme="dark"] .checklist-item.completed {
            background: rgba(217,119,6,0.15);
            border-color: var(--amber);
        }
        :root[data-theme="dark"] .checklist-cats button {
            background: #1f2937;
            color: #d1d5db;
        }
        :root[data-theme="dark"] .checklist-cats button:hover {
            border-color: var(--amber-light);
        }
        :root[data-theme="dark"] .checklist-cats button.active {
            background: var(--amber);
            color: #1c1917;
        }
        :root[data-theme="dark"] .reset-btn {
            min-height: 44px;
            background: #1f2937;
            color: #9ca3af;
            border-color: #374151;
        }
        :root[data-theme="dark"] .reset-btn:hover {
            border-color: var(--amber);
            color: var(--amber);
        }
        :root[data-theme="dark"] .checklist-disclaimer {
            background: #1f2937;
        }
        :root[data-theme="warm"] .checklist-item.completed {
            background: rgba(217,119,6,0.12);
            border-color: var(--amber);
        }
        :root[data-theme="warm"] .checklist-cats button {
            background: #fef3c7;
        }
        :root[data-theme="warm"] .checklist-cats button.active {
            background: var(--amber);
            color: #1c1917;
        }
        .checklist-item input[type="checkbox"] {
            width: 24px; height: 24px; appearance: none; -webkit-appearance: none;
            margin-top: 2px; flex-shrink: 0; cursor: pointer;
            border: 2px solid var(--border); border-radius: 5px;
            background: var(--surface); display: grid; place-content: center;
            transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
        }
        .checklist-item input[type="checkbox"]:focus-visible {
            outline: 3px solid var(--amber-light); outline-offset: 2px;
        }
        .checklist-item input[type="checkbox"]:checked {
            background: var(--amber); border-color: var(--amber);
        }
        .checklist-item input[type="checkbox"]:checked::after {
            content: '✓'; color: #1c1917; font-size: 17px; font-weight: 700; line-height: 1;
        }
        .checklist-item .item-content { flex: 1; }
        .checklist-item .item-title {
            font-weight: 600; font-size: 0.95rem; margin-bottom: 4px;
        }
        .checklist-item .item-desc {
            font-size: 0.85rem; color: var(--gray); line-height: 1.5;
        }
        .checklist-item .item-link {
            display: inline-block; margin-top: 6px;
            font-size: 0.8rem; color: var(--link); text-decoration: none;
        }
        .checklist-item .item-link:hover { text-decoration: underline; }
        .checklist-item .item-title small {
            font-weight: 400; font-size: 0.75rem;
            color: var(--gray-light); margin-left: 8px;
        }
        .checklist-item.completed .item-title small { color: var(--link); }

        .reset-btn {
            display: block; margin: 32px auto 0;
            min-height: 44px;
            padding: 10px 24px; border: 1px solid var(--gray-border);
            border-radius: 8px; background: var(--white); cursor: pointer;
            font-size: 0.85rem; color: var(--gray);
            transition: border-color 0.15s;
        }
        :root[data-theme="dark"] .reset-btn { background: #292524; color: #a8a29e; border-color: #44403c; }
        :root[data-theme="warm"] .reset-btn { background: #fffef5; }
        .reset-btn:hover { border-color: var(--amber); color: var(--link); }

        .checklist-disclaimer {
            max-width: 700px; margin: 40px auto 0;
            padding: 16px 20px;
            background: #fffbeb; border-left: 4px solid var(--amber);
            border-radius: 8px; font-size: 0.85rem; color: var(--gray);
        }

        /* Portrait phones: keep each milestone an independent, readable
           island and keep the reset explanation compact without shrinking
           touch targets. */
        @media (max-width: 600px) and (orientation: portrait) {
            .checklist-page { padding-block: 28px 48px; }
            .checklist-page .container-narrow { padding-inline: 16px; }
            .checklist-cats { gap: 6px; margin-bottom: 20px; justify-content: stretch; }
            .checklist-cats button { flex: 1 1 calc(50% - 6px); min-height: 40px; padding: 8px 10px; font-size: 0.78rem; }
            .checklist-item { gap: 10px; padding: 12px 14px; margin-bottom: 10px; }
            .checklist-item input[type="checkbox"] { width: 22px; height: 22px; }
            .checklist-item .item-title { font-size: 0.9rem; line-height: 1.3; }
            .checklist-item .item-desc { font-size: 0.8rem; line-height: 1.42; }
            .checklist-item .item-link { font-size: 0.76rem; }
            .checklist-disclaimer { margin: 24px 16px 0; padding: 12px 14px; font-size: 0.8rem; line-height: 1.45; }
            .checklist-modal { padding: 18px 16px; }
            .checklist-modal-actions { gap: 8px; }
            .checklist-modal-btn { min-height: 40px; padding: 8px 12px; }
        }

        .checklist-modal-backdrop[hidden] { display: none; }
