| .wrapper { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 1rem; | |
| } | |
| /* Hero */ | |
| .hero { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: 1.5rem; | |
| background: white; | |
| border-radius: var(--radius-lg); | |
| padding: 1.5rem; | |
| box-shadow: var(--shadow-card); | |
| } | |
| .heroText { | |
| flex: 1; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.4rem; | |
| } | |
| .detected { | |
| font-size: 0.7rem; | |
| font-weight: 400; | |
| color: var(--mauve-400); | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| } | |
| .commonName { | |
| font-family: var(--font-display); | |
| font-size: 2rem; | |
| font-weight: 400; | |
| color: var(--ink); | |
| line-height: 1.1; | |
| letter-spacing: -0.01em; | |
| } | |
| .sciName { | |
| font-family: var(--font-display); | |
| font-size: 0.95rem; | |
| font-style: italic; | |
| color: var(--mauve-400); | |
| font-weight: 300; | |
| } | |
| .confidencePill { | |
| display: inline-block; | |
| padding: 0.3rem 0.8rem; | |
| border-radius: 100px; | |
| font-size: 0.78rem; | |
| font-weight: 500; | |
| letter-spacing: 0.04em; | |
| margin-top: 0.3rem; | |
| align-self: flex-start; | |
| } | |
| .heroImage { | |
| width: 110px; | |
| height: 110px; | |
| border-radius: var(--radius-md); | |
| overflow: hidden; | |
| flex-shrink: 0; | |
| box-shadow: var(--shadow-soft); | |
| } | |
| .heroImage img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| } | |
| /* Card */ | |
| .card { | |
| background: white; | |
| border-radius: var(--radius-lg); | |
| padding: 1.3rem 1.5rem; | |
| box-shadow: var(--shadow-soft); | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.9rem; | |
| } | |
| .cardLabel { | |
| font-size: 0.7rem; | |
| font-weight: 400; | |
| color: var(--mauve-400); | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| } | |
| /* Prediction bars */ | |
| .bars { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.7rem; | |
| } | |
| .barRow { | |
| display: flex; | |
| align-items: center; | |
| gap: 0.75rem; | |
| } | |
| .barName { | |
| font-size: 0.82rem; | |
| color: var(--ink-light); | |
| width: 130px; | |
| flex-shrink: 0; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .barTrack { | |
| flex: 1; | |
| height: 6px; | |
| background: var(--beige-200); | |
| border-radius: 3px; | |
| overflow: hidden; | |
| } | |
| .barFill { | |
| height: 100%; | |
| border-radius: 3px; | |
| } | |
| .barPct { | |
| font-size: 0.78rem; | |
| color: var(--mauve-400); | |
| width: 36px; | |
| text-align: right; | |
| flex-shrink: 0; | |
| } | |
| /* Fact grid */ | |
| .factGrid { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.6rem; | |
| } | |
| .factItem { | |
| display: flex; | |
| align-items: baseline; | |
| gap: 0.75rem; | |
| } | |
| .factKey { | |
| font-size: 0.72rem; | |
| color: var(--mauve-400); | |
| letter-spacing: 0.08em; | |
| text-transform: uppercase; | |
| width: 64px; | |
| flex-shrink: 0; | |
| } | |
| .factVal { | |
| font-size: 0.88rem; | |
| color: var(--ink-light); | |
| } | |
| /* Fun facts */ | |
| .factsList { | |
| list-style: none; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 0.75rem; | |
| } | |
| .factLine { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 0.75rem; | |
| font-size: 0.875rem; | |
| color: var(--ink-light); | |
| line-height: 1.5; | |
| } | |
| .factDot { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| flex-shrink: 0; | |
| margin-top: 6px; | |
| } | |