/* ============================================
           Healing Blueprint Page Styles
           ============================================ */

        body {
            overflow-y: auto !important;
            overflow-x: hidden;
            height: auto;
            min-height: 100vh;
            font-family: var(--font-body);
            background: var(--bg-primary);
            color: var(--text-primary);
        }

        /* Header */
        .bp-header {
            position: sticky;
            top: 0;
            z-index: 100;
            display: flex;
            align-items: center;
            gap: var(--space-md);
            padding: var(--space-md) var(--space-lg);
            background: var(--bg-secondary);
            border-bottom: 1px solid var(--border-color);
            backdrop-filter: blur(12px);
        }

        .bp-back-btn {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            padding: var(--space-sm) var(--space-md);
            background: var(--bg-tertiary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-md);
            color: var(--text-secondary);
            text-decoration: none;
            font-size: 0.9rem;
            transition: var(--transition-fast);
        }

        .bp-back-btn:hover {
            background: var(--accent-glow);
            color: var(--text-primary);
        }

        .bp-header-title {
            font-family: var(--font-display);
            font-size: 1.4rem;
            font-weight: 400;
            color: var(--text-primary);
            margin: 0;
        }

        .bp-header-nav {
            margin-left: auto;
            display: flex;
            gap: var(--space-xs);
        }

        .bp-header-nav .nav-btn {
            padding: var(--space-sm) var(--space-md);
            background: var(--bg-tertiary);
            border-radius: var(--radius-md);
            text-decoration: none;
            font-size: 1.2rem;
            transition: var(--transition-fast);
        }

        .bp-header-nav .nav-btn:hover {
            background: var(--accent-glow);
        }

        /* Container */
        .bp-container {
            max-width: 900px;
            margin: 0 auto;
            padding: var(--space-lg);
            padding-bottom: calc(var(--space-xl) * 2);
        }

        /* Card base */
        .bp-card {
            background: var(--bg-secondary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-lg);
            padding: var(--space-lg);
            margin-bottom: var(--space-lg);
        }

        .bp-card-title {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            font-family: var(--font-display);
            font-size: 1.2rem;
            font-weight: 400;
            color: var(--text-primary);
            margin: 0 0 var(--space-md) 0;
        }

        .bp-card-title .title-icon {
            font-size: 1.3rem;
        }

        /* Summary card */
        .bp-summary-text {
            font-size: 0.95rem;
            line-height: 1.6;
            color: var(--text-secondary);
            font-style: italic;
        }

        /* Readiness section */
        .bp-readiness {
            text-align: center;
            padding: var(--space-xl) var(--space-lg);
        }

        .bp-readiness-title {
            font-family: var(--font-display);
            font-size: 1.5rem;
            color: var(--text-primary);
            margin-bottom: var(--space-md);
        }

        .bp-readiness-progress {
            max-width: 400px;
            margin: 0 auto var(--space-lg);
        }

        .bp-progress-bar {
            height: 12px;
            background: var(--bg-tertiary);
            border-radius: 6px;
            overflow: hidden;
            margin-bottom: var(--space-sm);
        }

        .bp-progress-fill {
            height: 100%;
            border-radius: 6px;
            transition: width 0.6s ease;
            background: linear-gradient(90deg, #6366f1, #a78bfa);
        }

        .bp-progress-label {
            font-size: 0.85rem;
            color: var(--text-secondary);
        }

        .bp-readiness-message {
            font-size: 0.95rem;
            color: var(--text-secondary);
            line-height: 1.6;
            margin-bottom: var(--space-lg);
        }

        .bp-missing-domains {
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-sm);
            justify-content: center;
        }

        .bp-missing-tag {
            padding: var(--space-xs) var(--space-md);
            background: rgba(244, 67, 54, 0.15);
            border: 1px solid rgba(244, 67, 54, 0.3);
            border-radius: var(--radius-md);
            font-size: 0.8rem;
            color: #ef9a9a;
        }

        /* Ready badge */
        .bp-ready-badge {
            display: inline-flex;
            align-items: center;
            gap: var(--space-sm);
            padding: var(--space-sm) var(--space-lg);
            background: rgba(76, 175, 80, 0.15);
            border: 1px solid rgba(76, 175, 80, 0.3);
            border-radius: 20px;
            color: #81c784;
            font-size: 0.9rem;
            font-weight: 500;
            margin-bottom: var(--space-md);
        }

        /* Healing Season badge */
        .bp-season-badge {
            display: inline-flex;
            align-items: center;
            gap: var(--space-sm);
            padding: var(--space-md) var(--space-xl);
            border-radius: var(--radius-lg);
            font-size: 1.1rem;
            font-weight: 500;
            margin-bottom: var(--space-md);
        }

        .bp-season-badge.stabilization {
            background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(139, 92, 246, 0.2));
            border: 1px solid rgba(99, 102, 241, 0.4);
            color: #a5b4fc;
        }

        .bp-season-badge.growth {
            background: linear-gradient(135deg, rgba(34, 197, 94, 0.2), rgba(16, 185, 129, 0.2));
            border: 1px solid rgba(34, 197, 94, 0.4);
            color: #86efac;
        }

        .bp-season-badge.integration {
            background: linear-gradient(135deg, rgba(251, 191, 36, 0.2), rgba(245, 158, 11, 0.2));
            border: 1px solid rgba(251, 191, 36, 0.4);
            color: #fde68a;
        }

        .bp-season-details {
            margin-top: var(--space-md);
        }

        .bp-season-desc {
            font-size: 0.9rem;
            color: var(--text-secondary);
            line-height: 1.6;
            margin-bottom: var(--space-sm);
        }

        .bp-season-meta {
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-md);
            font-size: 0.8rem;
            color: var(--text-muted);
        }

        .bp-season-meta span {
            display: flex;
            align-items: center;
            gap: 4px;
        }

        /* Core Wounds */
        .bp-wounds-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: var(--space-md);
        }

        .bp-wound-card {
            background: var(--bg-tertiary);
            border-radius: var(--radius-md);
            padding: var(--space-md);
            border-left: 3px solid;
            transition: var(--transition-fast);
        }

        .bp-wound-card:hover {
            transform: translateY(-1px);
            box-shadow: 0 4px 12px var(--shadow-color);
        }

        .bp-wound-card.critical {
            border-left-color: #ef5350;
            background: rgba(244, 67, 54, 0.08);
        }

        .bp-wound-card.significant {
            border-left-color: #ffa726;
            background: rgba(255, 152, 0, 0.08);
        }

        .bp-wound-name {
            font-weight: 500;
            font-size: 0.95rem;
            color: var(--text-primary);
            margin-bottom: 4px;
        }

        .bp-wound-score {
            font-size: 0.8rem;
            color: var(--text-muted);
            margin-bottom: var(--space-sm);
        }

        .bp-wound-severity {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 10px;
            font-size: 0.7rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .bp-wound-severity.critical {
            background: rgba(244, 67, 54, 0.2);
            color: #ef9a9a;
        }

        .bp-wound-severity.significant {
            background: rgba(255, 152, 0, 0.2);
            color: #ffcc80;
        }

        .bp-wound-companion {
            display: flex;
            align-items: center;
            gap: 4px;
            font-size: 0.8rem;
            color: var(--text-muted);
            margin-top: var(--space-sm);
        }

        .bp-empty-state {
            text-align: center;
            padding: var(--space-lg);
            color: var(--text-muted);
            font-size: 0.9rem;
        }

        /* Pattern Map */
        .bp-patterns-list {
            display: flex;
            flex-direction: column;
            gap: var(--space-md);
        }

        .bp-pattern-card {
            background: var(--bg-tertiary);
            border-radius: var(--radius-md);
            padding: var(--space-md);
            border: 1px solid var(--border-color);
        }

        .bp-pattern-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: var(--space-sm);
        }

        .bp-pattern-name {
            font-weight: 500;
            font-size: 1rem;
            color: var(--text-primary);
        }

        .bp-pattern-severity {
            padding: 2px 10px;
            border-radius: 10px;
            font-size: 0.7rem;
            font-weight: 600;
            text-transform: uppercase;
        }

        .bp-pattern-severity.high {
            background: rgba(244, 67, 54, 0.2);
            color: #ef9a9a;
        }

        .bp-pattern-severity.moderate {
            background: rgba(255, 193, 7, 0.2);
            color: #fff176;
        }

        .bp-pattern-severity.mild {
            background: rgba(76, 175, 80, 0.2);
            color: #a5d6a7;
        }

        .bp-pattern-desc {
            font-size: 0.85rem;
            color: var(--text-secondary);
            margin-bottom: var(--space-sm);
            line-height: 1.5;
        }

        .bp-pattern-avg {
            font-size: 0.8rem;
            color: var(--text-muted);
            margin-bottom: var(--space-sm);
        }

        .bp-pattern-domains {
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-xs);
        }

        .bp-pattern-domain-tag {
            padding: 3px 10px;
            background: var(--bg-secondary);
            border: 1px solid var(--border-color);
            border-radius: var(--radius-sm);
            font-size: 0.75rem;
            color: var(--text-secondary);
        }

        .bp-pattern-domain-tag .tag-score {
            color: var(--text-muted);
            margin-left: 4px;
        }

        /* Companion Plan */
        .bp-companion-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
            gap: var(--space-md);
        }

        .bp-companion-card {
            background: var(--bg-tertiary);
            border-radius: var(--radius-md);
            padding: var(--space-md);
            border-top: 3px solid var(--accent);
        }

        .bp-companion-header {
            display: flex;
            align-items: center;
            gap: var(--space-sm);
            margin-bottom: var(--space-sm);
        }

        .bp-companion-icon {
            font-size: 1.5rem;
        }

        .bp-companion-name {
            font-weight: 500;
            font-size: 1rem;
            color: var(--text-primary);
            text-transform: capitalize;
        }

        .bp-companion-desc {
            font-size: 0.8rem;
            color: var(--text-muted);
            margin-bottom: var(--space-md);
        }

        .bp-companion-domains {
            display: flex;
            flex-direction: column;
            gap: var(--space-xs);
        }

        .bp-companion-domain {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: var(--space-xs) var(--space-sm);
            background: var(--bg-secondary);
            border-radius: var(--radius-sm);
            font-size: 0.8rem;
        }

        .bp-companion-domain-name {
            color: var(--text-secondary);
        }

        .bp-companion-domain-priority {
            padding: 1px 8px;
            border-radius: 8px;
            font-size: 0.7rem;
            font-weight: 600;
        }

        .bp-companion-domain-priority.high {
            background: rgba(244, 67, 54, 0.2);
            color: #ef9a9a;
        }

        .bp-companion-domain-priority.moderate {
            background: rgba(255, 193, 7, 0.2);
            color: #fff176;
        }

        .bp-companion-domain-priority.maintenance {
            background: rgba(76, 175, 80, 0.15);
            color: #a5d6a7;
        }

        /* Rhythm section */
        .bp-rhythm-section {
            margin-bottom: var(--space-lg);
        }

        .bp-rhythm-subtitle {
            font-size: 0.95rem;
            font-weight: 500;
            color: var(--text-primary);
            margin-bottom: var(--space-sm);
            display: flex;
            align-items: center;
            gap: var(--space-sm);
        }

        .bp-rhythm-items {
            display: flex;
            flex-direction: column;
            gap: var(--space-sm);
        }

        .bp-rhythm-item {
            display: flex;
            align-items: flex-start;
            gap: var(--space-md);
            padding: var(--space-sm) var(--space-md);
            background: var(--bg-tertiary);
            border-radius: var(--radius-md);
            font-size: 0.85rem;
        }

        .bp-rhythm-time {
            font-weight: 500;
            color: var(--accent);
            min-width: 80px;
            flex-shrink: 0;
        }

        .bp-rhythm-activity {
            color: var(--text-secondary);
            flex: 1;
        }

        .bp-rhythm-duration {
            color: var(--text-muted);
            font-size: 0.75rem;
            white-space: nowrap;
        }

        .bp-rhythm-note {
            font-size: 0.85rem;
            color: var(--text-muted);
            font-style: italic;
            margin-top: var(--space-md);
            padding: var(--space-sm) var(--space-md);
            border-left: 2px solid var(--accent-glow);
        }

        /* Reflection Prompts */
        .bp-prompts-list {
            display: flex;
            flex-direction: column;
            gap: var(--space-sm);
        }

        .bp-prompt-item {
            padding: var(--space-md);
            background: var(--bg-tertiary);
            border-radius: var(--radius-md);
            border-left: 2px solid var(--accent);
        }

        .bp-prompt-text {
            font-family: var(--font-display);
            font-size: 1rem;
            color: var(--text-primary);
            line-height: 1.5;
            font-style: italic;
            margin-bottom: 4px;
        }

        .bp-prompt-domain {
            font-size: 0.75rem;
            color: var(--text-muted);
        }

        /* Regenerate button */
        .bp-regenerate-section {
            text-align: center;
            padding: var(--space-lg) 0;
        }

        .bp-regenerate-btn {
            padding: var(--space-md) var(--space-xl);
            background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(139, 92, 246, 0.2));
            border: 1px solid rgba(99, 102, 241, 0.4);
            border-radius: var(--radius-lg);
            color: #a5b4fc;
            font-size: 0.95rem;
            font-family: var(--font-body);
            cursor: pointer;
            transition: var(--transition-fast);
        }

        .bp-regenerate-btn:hover {
            background: linear-gradient(135deg, rgba(99, 102, 241, 0.35), rgba(139, 92, 246, 0.35));
            transform: translateY(-1px);
        }

        .bp-regenerate-btn:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            transform: none;
        }

        .bp-generated-at {
            font-size: 0.75rem;
            color: var(--text-muted);
            margin-top: var(--space-sm);
        }

        /* Loading state */
        .bp-loading {
            text-align: center;
            padding: var(--space-xl) * 2;
            color: var(--text-secondary);
        }

        .bp-loading-spinner {
            display: inline-block;
            width: 32px;
            height: 32px;
            border: 3px solid var(--border-color);
            border-top-color: var(--accent);
            border-radius: 50%;
            animation: bp-spin 0.8s linear infinite;
            margin-bottom: var(--space-md);
        }

        @keyframes bp-spin {
            to { transform: rotate(360deg); }
        }

        /* Responsive */
        @media (max-width: 600px) {
            .bp-container {
                padding: var(--space-md);
            }

            .bp-wounds-grid,
            .bp-companion-grid {
                grid-template-columns: 1fr;
            }

            .bp-header-nav {
                display: none;
            }

            .bp-rhythm-item {
                flex-direction: column;
                gap: var(--space-xs);
            }

            .bp-rhythm-time {
                min-width: unset;
            }
        }
