text: Title: Support .env files for configuration
  Body: ### Checklist
  
  - [x] I have searched the [existing issues](https://github.com/streamlit/streamlit/issues) for similar issues.
  - [x] I added a very descriptive title to this issue.
  - [x] I have provided sufficient information below to help reproduce this issue.
  
  ### Summary
  
  Configuration options provided through the environment are ignored by streamlit and default are used instead.
  
  This directly contradicts intended behaviour:
  - As per described the [configuration options](https://docs.streamlit.io/develop/concepts/configuration/options)
  - As per described per option when running `streamlit run --help`
  
  ### Reproducible Code Example
  
  ```Python
  `.env`
  .env
  # ? Streamlit
  STREAMLIT_GLOBAL_DEVELOPMENT_MODE=False
  
  ## ? Server variables
  STREAMLIT_SERVER_HOST='localhost'
  STREAMLIT_SERVER_PORT=80
  STREAMLIT_SERVER_MAX_UPLOAD_SIZE=1000
  STREAMLIT_SERVER_ENABLE_STATIC_SERVING=True
  
  ## ? Theme variables
  STREAMLIT_BROWSER_SERVER_ADDRESS='localhost'
  STREAMLIT_BROWSER_SERVER_PORT=80
  STREAMLIT_BROWSER_GATHER_USAGE_STATS=False
  
  ## ? Theme variables
  STREAMLIT_THEME_BASE="dark"
  STREAMLIT_THEME_PRIMARY_COLOR="#5c49e1"
  STREAMLIT_THEME_BACKGROUND_COLOR="#0E1117"
  STREAMLIT_THEME_SECONDARY_BACKGROUND_COLOR="#373e75"
  STREAMLIT_THEME_TEXT_COLOR="#FAFAFA"
  
  `main.py`
  
  import os
  import streamlit as st
  from dotenv import load_dotenv
  
  load_dotenv()
  
  options = [
      "global.developmentMode",
      "server.address",
      "server.port",
      "server.maxUploadSize",
      "server.enableStaticServing",
      "browser.serverAddress",
      "browser.serverPort",
      "browser.gatherUsageStats",
      "theme.base",
      "theme.primaryColor",
      "theme.backgroundColor",
      "theme.secondaryBackgroundColor",
      "theme.textColor"
  ]
  
  st.header("Variables matching `STREAMLIT_*` in ENV")
  env_matches = []
  for entry in os.environ:
      if "STREAMLIT" in entry:
          env_matches.append(f"{entry}={os.getenv(entry)}")
  st.write(env_matches)
  
  st.header("Used variables, as read by `st.get_option()`")
  option_matches = []
  for option in options:
      option_matches.append(f"{option}={st.get_option(option)}")
  st.write(option_matches)
  ```
  
  ### Steps To Reproduce
  
  With the folder structure:
  ```
  /error_to_reproduce
     /main.py
     /.env
  ```
  1. Create folder and step into it: `mkdir error_to_reproduce && cd error_to_reproduce`
  2. Copy contents under `.env` to `error_to_reproduce/.env` and `main.py` to `error_to_reproduce/main.py`
  3. Create a `virtualenv` and activate it: `python -m venv venv && source venv/bin/activate`
  4. Install dependencies: `pip3 install streamlit python-dotenv`
  5. Execute application `streamlit run main.py`
  
  ### Expected Behavior
  
  The expected behaviour would be for streamlit to use the supplied environment variables:
  - As per described in the [configuration options](https://docs.streamlit.io/develop/concepts/configuration/options)
  - As per described per option when running `streamlit run --help`
    - See environment examples in image:
      ![Image](https://github.com/user-attachments/assets/32188d24-daa4-4fe1-b3ed-2dab54864757)
  
  ### Current Behavior
  
  The current behaviour is that the configuration options set in the environment are ignored for defaults. See example using the provided reproducible steps below.
  ![Image](https://github.com/user-attachments/assets/8210a131-939e-4661-88b2-0a1e7813aa5e)
  
  ### Is this a regression?
  
  - [ ] Yes, this used to work in a previous version.
  
  ### Debug info
  
  - Streamlit version: `1.41.1`
  - Python DotEnv version: `1.0.1`
  - Python version: `3.10.12`
  - Operating System: Linux
    - Distribution `Pop!_OS 22.04 LTS x86_64` 
    - Kernel: `6.9.3-76060903-generic`
  - Browser: Firefox `134.0.2`
  
  
  ### Additional Information
  
  _No response_