/* Proteus v2 SaaS-factory shared styles
   Used by: dashboard "My Projects" view, /project/ detail page. */

/* ---------- My Projects grid ---------- */

.my-projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
    margin-top: 8px;
}

.proj-tile {
    display: block;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, #e4e4e7);
    border-radius: 12px;
    padding: 18px 18px 14px;
    color: inherit;
    text-decoration: none;
    transition: transform 0.1s ease, box-shadow 0.1s ease, border-color 0.1s ease;
}

.proj-tile:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.06);
    border-color: #c4c4c8;
}

.proj-tile-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 6px;
}

.proj-tile-name {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.proj-tile-status {
    color: white;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 3px 8px;
    border-radius: 999px;
    white-space: nowrap;
}

.proj-tile-desc {
    color: var(--text-muted, #6a6a6a);
    font-size: 13px;
    line-height: 1.4;
    min-height: 38px;
    margin-bottom: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.proj-tile-meta {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.proj-tile-meta .chip {
    font-size: 11px;
    background: var(--card-bg-alt, #f4f4f5);
    color: var(--text-muted, #6a6a6a);
    padding: 3px 8px;
    border-radius: 6px;
}

/* New-project highlight pulse (shown after onboarding redirect) */
.proj-tile.is-new {
    border-color: #16a34a;
    box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15);
    animation: projTilePulse 1.6s ease-out 2;
}
@keyframes projTilePulse {
    0%   { box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.4); }
    100% { box-shadow: 0 0 0 3px rgba(22, 163, 74, 0); }
}

.proteus-toast {
    position: fixed;
    top: 16px;
    right: 16px;
    background: #16a34a;
    color: white;
    padding: 12px 18px;
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.15);
    z-index: 9999;
    max-width: 360px;
    animation: toastSlide 0.3s ease-out;
}
@keyframes toastSlide {
    from { transform: translateX(20px); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}
.proteus-toast a { color: white; text-decoration: underline; }

/* ---------- Project detail page ---------- */

.project-main {
    max-width: 980px;
    margin: 0 auto;
    padding: 32px 24px 80px;
}

.project-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 8px;
}

.project-head h1 {
    font-size: 28px;
    margin: 0 0 6px;
    letter-spacing: -0.01em;
}

.project-head .project-desc {
    color: var(--text-muted, #6a6a6a);
    margin: 0 0 6px;
    line-height: 1.5;
    max-width: 65ch;
}

.project-head .project-meta-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
    color: var(--text-muted, #6a6a6a);
    font-size: 13px;
}

.project-head .project-meta-row .chip {
    background: var(--card-bg-alt, #f4f4f5);
    padding: 3px 8px;
    border-radius: 6px;
    font-size: 12px;
}

.plan-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--border, #e4e4e7);
    margin: 24px 0 0;
    overflow-x: auto;
}

.plan-tab {
    padding: 10px 16px;
    border: none;
    background: transparent;
    color: var(--text-muted, #6a6a6a);
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    white-space: nowrap;
}
.plan-tab:hover { color: var(--text, #1a1a1a); }
.plan-tab.active {
    color: var(--text, #1a1a1a);
    border-bottom-color: #2563eb;
}
.plan-tab .plan-tab-status {
    font-size: 10px;
    text-transform: uppercase;
    background: var(--card-bg-alt, #f4f4f5);
    color: var(--text-muted, #6a6a6a);
    padding: 2px 6px;
    border-radius: 4px;
    margin-left: 6px;
    letter-spacing: 0.04em;
}
.plan-tab.active .plan-tab-status { background: #dbeafe; color: #1e40af; }
.plan-tab[data-status="approved"] .plan-tab-status { background: #dcfce7; color: #166534; }

.plan-actions {
    display: flex;
    gap: 8px;
    margin: 16px 0;
    align-items: center;
    flex-wrap: wrap;
}

.plan-actions .plan-version {
    color: var(--text-muted, #6a6a6a);
    font-size: 13px;
    margin-right: auto;
}

.plan-actions button {
    padding: 6px 14px;
    border-radius: 7px;
    border: 1px solid var(--border, #e4e4e7);
    background: var(--card-bg, #fff);
    color: inherit;
    cursor: pointer;
    font-size: 13px;
}
.plan-actions button:hover { background: var(--card-bg-alt, #f4f4f5); }
.plan-actions button.btn-approve {
    background: #16a34a;
    color: white;
    border-color: #16a34a;
}
.plan-actions button.btn-approve:hover { background: #15803d; }
.plan-actions button.btn-approve:disabled { opacity: 0.5; cursor: not-allowed; }

/* Markdown rendering */

.plan-body {
    line-height: 1.6;
    color: var(--text, #1a1a1a);
    font-size: 15px;
    padding: 8px 4px 32px;
}
.plan-body h1 { font-size: 26px; margin: 28px 0 12px; letter-spacing: -0.01em; }
.plan-body h2 { font-size: 21px; margin: 24px 0 10px; letter-spacing: -0.005em; }
.plan-body h3 { font-size: 17px; margin: 20px 0 8px; }
.plan-body h4 { font-size: 15px; margin: 16px 0 6px; }
.plan-body p  { margin: 0 0 12px; }
.plan-body ul, .plan-body ol { margin: 0 0 12px; padding-left: 24px; }
.plan-body li { margin-bottom: 4px; }
.plan-body code {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 13px;
    background: var(--card-bg-alt, #f4f4f5);
    padding: 1px 5px;
    border-radius: 4px;
}
.plan-body pre {
    background: var(--card-bg-alt, #f4f4f5);
    padding: 12px 14px;
    border-radius: 8px;
    overflow-x: auto;
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.5;
}
.plan-body pre code { background: transparent; padding: 0; font-size: inherit; }
.plan-body blockquote {
    border-left: 3px solid var(--border, #e4e4e7);
    margin: 0 0 12px;
    padding: 4px 14px;
    color: var(--text-muted, #6a6a6a);
}
.plan-body hr {
    border: none;
    border-top: 1px solid var(--border, #e4e4e7);
    margin: 20px 0;
}
.plan-body a { color: #2563eb; text-decoration: underline; }
.plan-body strong { font-weight: 600; }
.plan-body table {
    border-collapse: collapse;
    margin: 0 0 14px;
    width: 100%;
    font-size: 14px;
}
.plan-body th, .plan-body td {
    border: 1px solid var(--border, #e4e4e7);
    padding: 6px 10px;
    text-align: left;
}
.plan-body th { background: var(--card-bg-alt, #f4f4f5); font-weight: 600; }

/* Empty state */

.project-empty, .plan-empty {
    padding: 60px 20px;
    text-align: center;
    color: var(--text-muted, #6a6a6a);
}
.project-empty.error, .plan-empty.error { color: #b91c1c; }

/* Dark mode adjustments */
[data-theme="dark"] .proj-tile { background: #18181b; border-color: #3f3f46; }
[data-theme="dark"] .proj-tile-meta .chip { background: #27272a; color: #a1a1aa; }
[data-theme="dark"] .plan-tabs { border-bottom-color: #3f3f46; }
[data-theme="dark"] .plan-actions button { background: #18181b; border-color: #3f3f46; }
[data-theme="dark"] .plan-actions button:hover { background: #27272a; }
[data-theme="dark"] .plan-body code,
[data-theme="dark"] .plan-body pre { background: #27272a; }
[data-theme="dark"] .plan-body th { background: #27272a; }
[data-theme="dark"] .plan-body blockquote { border-color: #3f3f46; }

/* ---------- Project page: Continue interview banner ---------- */
.project-continue-banner {
    margin: 16px 0 20px;
    padding: 14px 18px;
    border-radius: 12px;
    background: linear-gradient(135deg, #eff6ff, #ecfeff);
    border: 1px solid #bfdbfe;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
}
.project-continue-banner > div { display: flex; flex-direction: column; gap: 2px; }
.project-continue-banner strong { font-size: 15px; color: #1e3a8a; }
.project-continue-banner span { font-size: 13px; color: #475569; }
[data-theme="dark"] .project-continue-banner {
    background: linear-gradient(135deg, #0f1f33, #102525);
    border-color: #1e3a8a;
}
[data-theme="dark"] .project-continue-banner strong { color: #93c5fd; }
[data-theme="dark"] .project-continue-banner span { color: #cbd5e1; }

/* ---------- Project page: Advance-to-R1 panel ---------- */
.project-advance {
    margin: 24px 0 12px;
    padding: 16px 18px;
    border-radius: 12px;
    background: linear-gradient(135deg, #ecfdf5, #f0f9ff);
    border: 1px solid #a7f3d0;
}
[data-theme="dark"] .project-advance {
    background: linear-gradient(135deg, #0d1f1c, #0f1d2a);
    border-color: #14532d;
}
.project-advance-head {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 12px;
}
.project-advance-head strong { font-size: 15px; color: #064e3b; }
.project-advance-head span   { font-size: 13px; color: #475569; }
[data-theme="dark"] .project-advance-head strong { color: #6ee7b7; }
[data-theme="dark"] .project-advance-head span   { color: #94a3b8; }

.project-advance-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.project-advance-actions .advance-btn {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
}
.project-advance-actions .advance-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.project-advance-status {
    margin-top: 10px;
    font-size: 13px;
}
.project-advance-status.ok      { color: #16a34a; }
.project-advance-status.error   { color: #dc2626; }
.project-advance-status.pending { color: var(--text-muted, #6a6a6a); font-style: italic; }

/* ---------- Project page: phases + work plan sections ---------- */

.project-section {
    margin-top: 28px;
    padding: 14px 18px;
    border-radius: 12px;
    background: var(--card-bg, #f8f9fa);
    border: 1px solid var(--border, #e4e4e7);
}
[data-theme="dark"] .project-section {
    background: #18181b;
    border-color: #3f3f46;
}
.project-section > summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 16px;
    list-style: none;
    color: var(--text, #1a1a1a);
    display: flex;
    align-items: baseline;
    gap: 8px;
}
.project-section > summary::before {
    content: '▸';
    font-size: 11px;
    color: var(--text-muted, #6a6a6a);
}
.project-section[open] > summary::before { content: '▾'; }
.section-count {
    font-weight: 400;
    color: var(--text-muted, #6a6a6a);
    font-size: 14px;
}
.section-empty {
    margin: 12px 0 0;
    padding: 10px 12px;
    background: rgba(0,0,0,0.03);
    border-radius: 8px;
    font-size: 13px;
    color: var(--text-muted, #6a6a6a);
}

/* Phase cards */
.rp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.rp-card {
    border: 1px solid var(--border, #e4e4e7);
    border-radius: 10px;
    padding: 12px;
    background: #fff;
    cursor: pointer;
    transition: border-color 120ms, transform 120ms, background 120ms;
}
.rp-card:hover { border-color: var(--accent, #3b82f6); }
.rp-card.current { border-color: #16a34a; background: #f0fdf4; }
.rp-card.expanded { border-color: var(--accent, #3b82f6); background: #eff6ff; }
[data-theme="dark"] .rp-card { background: #1f1f23; border-color: #3f3f46; }
[data-theme="dark"] .rp-card.current { background: #0d1f12; border-color: #16a34a; }
[data-theme="dark"] .rp-card.expanded { background: #0f1d2a; }

.rp-card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}
.rp-name { font-weight: 600; flex: 1; color: var(--text, #1a1a1a); }
.rp-decision {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 2px 6px;
    border-radius: 4px;
    color: white;
}
.rp-decision.go      { background: #16a34a; }
.rp-decision.no-go   { background: #dc2626; }
.rp-decision.pending { background: #94a3b8; }

.rp-progress {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-muted, #6a6a6a);
}
.rp-progress-bar {
    flex: 1;
    height: 6px;
    background: rgba(0,0,0,0.06);
    border-radius: 3px;
    overflow: hidden;
}
.rp-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #3b82f6, #16a34a);
    border-radius: 3px;
    transition: width 240ms ease;
}
[data-theme="dark"] .rp-progress-bar { background: rgba(255,255,255,0.08); }

/* Phase detail expansion */
.rp-detail:empty { display: none; }
.rp-detail {
    margin-top: 16px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--accent, #3b82f6);
    border-radius: 10px;
}
[data-theme="dark"] .rp-detail { background: #18181b; }
.rp-detail-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}
.rp-detail-head h3 { margin: 0 0 4px; font-size: 16px; }
.rp-detail-close {
    background: transparent;
    border: none;
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
    color: var(--text-muted, #6a6a6a);
}
.rp-detail-desc {
    color: var(--text-muted, #6a6a6a);
    font-size: 13px;
    margin: 0 0 10px;
}

.crit-list { list-style: none; padding: 0; margin: 0; }
.crit-row {
    padding: 6px 0;
    border-bottom: 1px solid rgba(0,0,0,0.04);
}
[data-theme="dark"] .crit-row { border-bottom-color: rgba(255,255,255,0.06); }
.crit-row.met .crit-name { text-decoration: line-through; color: var(--text-muted, #6a6a6a); }
.crit-row label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.crit-check { width: 16px; height: 16px; accent-color: var(--accent, #3b82f6); }
.crit-name { flex: 1; }
.crit-required { color: #dc2626; font-weight: 700; }
.crit-detail {
    font-size: 12px;
    color: var(--text-muted, #6a6a6a);
    margin-left: 24px;
    margin-top: 2px;
}

.rp-decide-actions { display: flex; gap: 8px; margin-top: 12px; }
.rp-decide-final {
    margin-top: 12px;
    padding: 8px 12px;
    background: rgba(0,0,0,0.03);
    border-radius: 6px;
    font-size: 14px;
    color: var(--text-muted, #6a6a6a);
}
.rp-decide-blocked {
    margin-top: 12px;
    font-size: 13px;
    color: var(--text-muted, #6a6a6a);
    font-style: italic;
}

/* Work plan (modules) */
.wbs-group { margin-top: 12px; }
.wbs-group-head {
    margin: 0 0 6px;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #6a6a6a);
}
.wbs-list { list-style: none; padding: 0; margin: 0; }
.wbs-row {
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 10px;
    padding: 6px 8px;
    border-bottom: 1px solid rgba(0,0,0,0.04);
    align-items: baseline;
}
[data-theme="dark"] .wbs-row { border-bottom-color: rgba(255,255,255,0.06); }
.wbs-code {
    font-family: ui-monospace, SFMono-Regular, monospace;
    font-size: 12px;
    color: var(--text-muted, #6a6a6a);
}
.wbs-name { color: var(--text, #1a1a1a); }
.wbs-status {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #6a6a6a);
}

/* ---------- Auto-check from plans ---------- */
.rp-toolbar {
    margin-top: 12px;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.auto-check-btn {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 14px;
    cursor: pointer;
}
.auto-check-btn:disabled { opacity: 0.55; cursor: progress; }
.auto-check-count {
    font-weight: 400;
    color: var(--text-muted, #6a6a6a);
    margin-left: 4px;
}
.auto-check-status {
    margin-top: 6px;
    font-size: 13px;
}
.auto-check-status.pending { color: var(--text-muted, #6a6a6a); font-style: italic; }
.auto-check-status.ok      { color: #16a34a; }
.auto-check-status.error   { color: #dc2626; }

/* Show the evidence next to met criteria so the user can sanity-check */
.crit-row.met .crit-detail { color: #16a34a; }

/* ---------- Build panel (default project view) ---------- */
.build-panel {
    margin: 16px 0 24px;
    padding: 16px 18px;
    border-radius: 12px;
    background: linear-gradient(135deg, #eff6ff, #f0fdfa);
    border: 1px solid #bfdbfe;
}
[data-theme="dark"] .build-panel {
    background: linear-gradient(135deg, #0f1d2a, #102525);
    border-color: #1e3a8a;
}
.build-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}
.build-url-wrap { display: flex; flex-direction: column; gap: 2px; }
.build-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted, #6a6a6a);
}
.build-url {
    font-family: ui-monospace, SFMono-Regular, monospace;
    font-size: 15px;
    color: var(--accent, #3b82f6);
    text-decoration: none;
    border-bottom: 1px dashed currentColor;
}
.build-url:hover { color: #1d4ed8; }
.build-btn:disabled { opacity: 0.55; cursor: not-allowed; }
.build-hint {
    margin: 10px 0 0;
    font-size: 13px;
    color: var(--text-muted, #6a6a6a);
}
.build-status {
    margin-top: 8px;
    font-size: 13px;
}
.build-status.pending { color: var(--text-muted, #6a6a6a); font-style: italic; }
.build-status.ok      { color: #16a34a; }
.build-status.error   { color: #dc2626; }
.build-url.muted {
    color: var(--text-muted, #9aa0a6);
    border-bottom-style: dotted;
    cursor: default;
}
.build-panel.product-panel {
    background: linear-gradient(135deg, #faf5ff, #fdf2f8);
    border-color: #ddd6fe;
}
[data-theme="dark"] .build-panel.product-panel {
    background: linear-gradient(135deg, #1c1530, #2a132a);
    border-color: #6d28d9;
}

/* ---------- Feedback chat panel ---------- */
.feedback-panel {
    margin: 12px 0 24px;
    padding: 16px 18px;
    border-radius: 12px;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e4e4e7);
}
[data-theme="dark"] .feedback-panel {
    background: #14171a;
    border-color: #2a2f36;
}
.feedback-head {
    margin: 0 0 12px;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted, #6a6a6a);
}
.feedback-thread {
    max-height: 480px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 4px 2px;
}
.feedback-empty {
    color: var(--text-muted, #6a6a6a);
    font-size: 13px;
    margin: 8px 4px;
}
.feedback-bubble {
    padding: 10px 12px;
    border-radius: 10px;
    max-width: 90%;
    font-size: 14px;
    line-height: 1.45;
}
.feedback-bubble.role-user {
    align-self: flex-end;
    background: var(--accent-soft, #dbeafe);
    color: var(--text, #0a0a0a);
}
[data-theme="dark"] .feedback-bubble.role-user {
    background: #1e3a8a;
    color: #e5e7eb;
}
.feedback-bubble.role-assistant {
    align-self: flex-start;
    background: var(--surface-2, #f5f5f5);
    color: var(--text, #0a0a0a);
}
[data-theme="dark"] .feedback-bubble.role-assistant {
    background: #1f2329;
    color: #e5e7eb;
}
.feedback-body p { margin: 4px 0; }
.feedback-edit {
    margin-top: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(99,102,241,0.08);
    border: 1px dashed #a5b4fc;
    font-size: 13px;
}
[data-theme="dark"] .feedback-edit {
    background: rgba(99,102,241,0.15);
    border-color: #4338ca;
}
.feedback-edit.applied {
    border-style: solid;
    border-color: #16a34a;
    background: rgba(34,197,94,0.10);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.feedback-edit.failed {
    border-style: solid;
    border-color: #dc2626;
    background: rgba(239,68,68,0.08);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.feedback-edit.applying {
    border-style: solid;
    border-color: #a5b4fc;
    background: rgba(99,102,241,0.05);
}
.feedback-edit.failed .feedback-edit-status { color: #dc2626; }
.feedback-apply-btn[disabled] { opacity: 0.65; cursor: progress; }
.feedback-edit-paths { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 2px 0; }
.feedback-edit-paths .feedback-edit-path { padding: 1px 6px; background: rgba(99,102,241,0.10); border-radius: 4px; }
.feedback-edit-meta { display: flex; gap: 8px; align-items: baseline; margin-bottom: 4px; }
.feedback-edit-label { color: var(--text-muted, #6a6a6a); font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; }
.feedback-edit-path {
    font-family: ui-monospace, SFMono-Regular, monospace;
    font-size: 13px;
    color: var(--accent, #3b82f6);
}
.feedback-edit-change {
    margin: 4px 0 8px;
    color: var(--text, #0a0a0a);
}
.feedback-edit-status { color: #16a34a; font-size: 12px; }
.feedback-apply-btn { padding: 5px 10px; font-size: 13px; }
.feedback-composer {
    margin-top: 12px;
    display: flex;
    gap: 8px;
    align-items: flex-end;
}
.feedback-input {
    flex: 1;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid var(--border, #e4e4e7);
    background: var(--surface, #fff);
    color: var(--text, #0a0a0a);
    font: inherit;
    resize: vertical;
    min-height: 40px;
}
[data-theme="dark"] .feedback-input {
    background: #0f1115;
    border-color: #2a2f36;
}
.feedback-send {
    white-space: nowrap;
}

/* WBS progress chip */
.wbs-progress {
    font-size: 12px;
    color: var(--text-muted, #6a6a6a);
    font-variant-numeric: tabular-nums;
}

.project-lifecycle-link {
    margin-top: 32px;
    padding-top: 16px;
    border-top: 1px solid var(--border, #e4e4e7);
    text-align: center;
}
.project-lifecycle-link a {
    color: var(--text-muted, #6a6a6a);
    font-size: 13px;
    text-decoration: none;
}
.project-lifecycle-link a:hover { color: var(--accent, #3b82f6); }
