/* Main container styling */ * { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } :root { --primary-red: #b71c1c; /* Deeper, more professional Red */ --light-red: #ffebee; --hover-red: #ffcdd2; --dark-red: #b71c1c; --atlas-teal: #00ffff; --atlas-dark: #00141e; --atlas-gold: #ffc107; --text-color: #333333; --border-color: #e0e0e0; } .main { background-color: #ffffff; padding: 2rem 5rem; } @media (max-width: 1200px) { .main { padding: 1rem 2rem; } } /* Main Header */ .main-header { font-size: 1.5rem; color: var(--primary-red); margin-bottom: 1.5rem; font-weight: 700; letter-spacing: -0.5px; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); } /* Section Headers */ .section-header { font-size: 1.8rem; color: var(--primary-red); margin-top: 1rem; margin-bottom: 1.5rem; font-weight: 600; border-bottom: 3px solid var(--primary-red); padding-bottom: 0.5rem; } /* Info Boxes with Material Design Shadow */ .info-box { background: linear-gradient(135deg, var(--light-red) 0%, #fffde7 100%); padding: 1.5rem; border-radius: 8px; margin: 1rem 0; border-left: 4px solid var(--primary-red); box-shadow: 0 2px 8px rgba(211, 47, 47, 0.1); transition: all 0.3s ease; } .info-box:hover { box-shadow: 0 4px 16px rgba(211, 47, 47, 0.2); transform: translateY(-2px); } /* Success Boxes */ .success-box { background: linear-gradient(135deg, #e8f5e9 0%, #c8e6c9 100%); padding: 1.5rem; border-radius: 8px; margin: 1rem 0; border-left: 4px solid #2e7d32; box-shadow: 0 2px 8px rgba(46, 125, 50, 0.1); } /* Card Styling for Material Design */ .material-card { background: white; border-radius: 12px; padding: 1.5rem; margin: 1rem 0; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; border: 1px solid var(--border-color); } .material-card:hover { box-shadow: 0 8px 24px rgba(211, 47, 47, 0.1); transform: translateY(-4px); } /* Button Styling */ .stButton>button { border-radius: 8px; padding: 0.6rem 1.8rem; font-weight: 600; background: white; color: var(--primary-red); border: 1px solid var(--primary-red); transition: all 0.2s ease; } .stButton>button:hover { background-color: var(--light-red); border-color: var(--primary-red); color: var(--primary-red); box-shadow: 0 2px 8px rgba(211, 47, 47, 0.2); } /* Tab Styling */ .stTabs [data-baseweb="tab-list"] { gap: 15px; border-bottom: 2px solid var(--border-color); } .stTabs [data-baseweb="tab"] { border-radius: 8px 8px 0 0; padding: 12px 24px; font-weight: 600; background-color: transparent; border: none; color: #666; } .stTabs [data-baseweb="tab"][aria-selected="true"] { color: var(--primary-red); border-bottom: 3px solid var(--primary-red); } /* Sidebar Styling */ section[data-testid="stSidebar"] { background-color: #ffffff; border-right: 1px solid var(--border-color); } /* Sidebar Navigation Icon Colors - Exhaustive Targeting */ section[data-testid="stSidebar"] [data-testid="stSidebarNav"] svg, section[data-testid="stSidebar"] [data-testid="stSidebarNav"] svg path, section[data-testid="stSidebar"] [data-testid="stSidebarNav"] [data-testid="stIconMaterial"], section[data-testid="stSidebar"] [data-testid="stSidebarNav"] span[data-testid="stIconMaterial"], [data-testid="stSidebarNavItems"] span:first-of-type svg { color: var(--primary-red) !important; fill: var(--primary-red) !important; } /* Visualization Container */ .viz-container { background: white; border-radius: 16px; padding: 2.5rem; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); margin: 1.5rem 0; border: 1px solid #f0f4f8; } /* Fix flickering on HuggingFace Spaces with stable selector */ /* @media (min-width: calc(736px + 8rem)) { section[data-testid="stMain"] { padding-left: 5rem !important; padding-right: 5rem !important; } } */ /* Constrain wide layout to 85% for visualization pages */ /* div[data-testid="stMainBlockContainer"] { max-width: 75% !important; margin: 0 auto !important; } */ /* ========================================= ATLAS HEADER SYSTEM ========================================= */ .atlas-main-header { background: transparent; position: relative; padding: 1rem 0 3rem 0; margin-bottom: 1rem; overflow: hidden; border-bottom: 1px solid #f0f0f0; } .network-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 0.04; z-index: 1; pointer-events: none; } .header-content { position: relative; z-index: 10; max-width: 98vw; margin: 0 auto; } .branding-bar { text-align: center; margin-bottom: 1rem; padding: 0.5rem 1rem; background: transparent; display: inline-block; position: relative; left: 50%; transform: translateX(-50%); } .brand-title { font-size: 4.2rem; font-weight: 800; color: var(--primary-red); margin: 0.5rem; text-shadow: 0 4px 10px rgba(211, 47, 47, 0.1); } .brand-logo-ascii { font-family: 'Courier New', Courier, monospace !important; font-size: 0.85rem; line-height: 1.1; color: var(--primary-red); background: transparent !important; border: none !important; padding: 0 !important; margin: 0 auto !important; text-align: center; white-space: pre; display: inline-block; font-weight: 900; } @media (max-width: 1400px) { .brand-logo-ascii { font-size: 0.65rem; } } .atlas-stage { display: flex; justify-content: center; align-items: center; gap: 10rem; padding: 0 1rem; } .species-stage-box { position: relative; width: 580px; height: 600px; display: flex; justify-content: center; align-items: center; zoom: 0.9; } @media (max-width: 1400px) { .species-stage-box { zoom: 0.75; width: 500px; height: 550px; } .atlas-stage { gap: 4rem; } } .center-figure-group { position: relative; z-index: 5; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; } .icon-background { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 440px; height: 440px; background-size: contain; background-repeat: no-repeat; background-position: center; opacity: 0.15; z-index: -1; } .main-silhouette { max-height: 280px; max-width: 100%; object-fit: contain; filter: contrast(1.2) brightness(1.2) drop-shadow(0 0 15px rgba(211, 47, 47, 0.4)); image-rendering: -webkit-optimize-contrast; margin-bottom: 1rem; transition: all 0.4s ease; pointer-events: auto; } .main-silhouette:hover { transform: scale(1.08); filter: contrast(1.2) brightness(1.4) drop-shadow(0 0 25px rgba(211, 47, 47, 0.7)); } .circular-container { position: absolute; top: 50%; left: 50%; width: 0; height: 0; z-index: 20; } .circular-bubble { position: absolute; width: 120px; pointer-events: auto; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); } /* Glass Style Organ Cards */ .bubble-content { background: rgba(255, 255, 255, 0.4); backdrop-filter: blur(25px) saturate(180%); -webkit-backdrop-filter: blur(25px) saturate(180%); border: 1px solid rgba(255, 255, 255, 0.6); padding: 0.6rem 0.8rem; border-radius: 12px; border-left: 5px solid #b71c1c; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05); } .bubble-org-name { font-size: 0.72rem; font-weight: 800; color: #111; letter-spacing: 0.4px; margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-bottom: 1px solid rgba(183, 28, 28, 0.2); padding-bottom: 4px; } .bubble-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2px; } .row-label { font-size: 0.85rem; color: #444; font-weight: 600; } .row-val { font-size: 0.85rem; font-weight: 900; color: var(--primary-red); } .circular-bubble:hover .bubble-content { background: rgba(255, 255, 255, 0.75); transform: translateY(-5px); border-color: rgba(211, 47, 47, 0.5); box-shadow: 0 15px 45px rgba(211, 47, 47, 0.15); } .stage-badge { background: var(--primary-red); color: white; padding: 0.8rem 3rem; border-radius: 50px; font-weight: 700; font-size: 1.15rem; box-shadow: 0 10px 30px rgba(211, 47, 47, 0.3); text-align: center; pointer-events: auto; border: 2px solid rgba(255, 255, 255, 0.1); } .spots-tag { font-size: 0.85rem; opacity: 0.95; display: block; font-weight: 400; margin-top: 4px; letter-spacing: 0.5px; }