/* ============================================================ ContactDetailPage – Layout & Komponenten ============================================================ */ /* ---- Navigation ---- */ .backLink { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--color-text-muted); text-decoration: none; font-size: 0.875rem; margin-bottom: 1rem; transition: color 0.15s; } .backLink:hover { color: var(--color-primary); } /* ---- Header ---- */ .header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 1.5rem; gap: 1rem; flex-wrap: wrap; } .headerLeft { display: flex; align-items: flex-start; gap: 0.75rem; min-width: 0; } .nameRow { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; } .name { font-size: 1.5rem; font-weight: 600; margin: 0; color: var(--color-text); } .nameCompany { font-size: 1.125rem; font-weight: 400; color: var(--color-text-muted); } .subtitle { font-size: 0.9375rem; color: var(--color-text-muted); margin: 0.25rem 0 0; } /* ---- Status badges ---- */ .badgeActive { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.1875rem 0.5rem; background: #dcfce7; color: #166534; border-radius: 9999px; font-size: 0.75rem; font-weight: 500; white-space: nowrap; flex-shrink: 0; } .badgeActive::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #16a34a; flex-shrink: 0; } .badgeInactive { display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.1875rem 0.5rem; background: #fee2e2; color: #991b1b; border-radius: 9999px; font-size: 0.75rem; font-weight: 500; white-space: nowrap; flex-shrink: 0; } .badgeInactive::before { content: ''; display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: #dc2626; flex-shrink: 0; } /* ---- Card ---- */ .card { background: var(--color-bg-card); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); border: 1px solid var(--color-border); padding: 1.5rem; } .cardTitle { font-size: 1rem; font-weight: 600; margin: 0 0 1rem 0; color: var(--color-text); } /* ---- Two-column info layout inside a card ---- */ .infoColumns { display: grid; grid-template-columns: 1fr 1fr; gap: 0.25rem 2rem; align-items: start; } @media (max-width: 640px) { .infoColumns { grid-template-columns: 1fr; gap: 0; } } /* ---- Info grid (label | value pairs) ---- */ .infoGrid { display: grid; grid-template-columns: 100px 1fr; gap: 0.5rem 0.75rem; font-size: 0.875rem; align-content: start; } .infoLabel { color: var(--color-text-muted); font-weight: 500; padding-top: 0.0625rem; /* optical alignment */ } .infoValue { color: var(--color-text); word-break: break-word; } .empty { color: var(--color-text-muted); opacity: 0.5; } /* ---- Address row (full-width below infoColumns) ---- */ .addressRow { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); } /* ---- Tags ---- */ .tags { display: flex; flex-wrap: wrap; gap: 0.375rem; } .tag { display: inline-block; padding: 0.125rem 0.5rem; background: var(--color-primary-light, #dbeafe); color: var(--color-primary, #1a56db); border-radius: 9999px; font-size: 0.75rem; font-weight: 500; } /* ---- Timeline ---- */ .timeline { display: flex; flex-direction: column; gap: 0; } .timelineItem { display: flex; gap: 0.75rem; padding: 0.75rem 0; border-bottom: 1px solid var(--color-border); } .timelineItem:last-child { border-bottom: none; } .timelineIcon { flex-shrink: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--color-bg); border: 1px solid var(--color-border); display: flex; align-items: center; justify-content: center; } .timelineContent { flex: 1; min-width: 0; } .timelineSubject { font-size: 0.875rem; font-weight: 500; color: var(--color-text); } .timelineMeta { font-size: 0.75rem; color: var(--color-text-muted); margin-top: 0.125rem; } .timelineDesc { font-size: 0.8125rem; color: var(--color-text-secondary); margin-top: 0.375rem; white-space: pre-wrap; } /* ---- Notes ---- */ .notesText { font-size: 0.875rem; color: var(--color-text-secondary); white-space: pre-wrap; line-height: 1.5; margin: 0; }