GoogleCalc commited on
Commit
74820bf
Β·
verified Β·
1 Parent(s): 1ade8fe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +137 -76
app.py CHANGED
@@ -571,7 +571,7 @@ def get_share_links(app_url="https://howmuchfeed.com"):
571
 
572
 
573
  # ============================================================
574
- # FEED CALCULATION - CLEAN INTERFACE
575
  # ============================================================
576
 
577
  def calculate_feed(birds, weeks, days, bag_size, price_per_bag, email, country_code, breed, request: gr.Request):
@@ -645,7 +645,7 @@ def calculate_feed(birds, weeks, days, bag_size, price_per_bag, email, country_c
645
  # Generate share links
646
  share_links = get_share_links()
647
 
648
- # Output HTML - CLEAN INTERFACE
649
  starter_bags_display = f"{starter_bags:.1f}"
650
  finisher_bags_display = f"{finisher_bags:.1f}"
651
 
@@ -654,93 +654,93 @@ def calculate_feed(birds, weeks, days, bag_size, price_per_bag, email, country_c
654
  age_text += f" + {days} day{'s' if days != 1 else ''}"
655
 
656
  html = f"""
657
- <div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 16px; line-height: 1.6; color: #1a1a1a;">
658
 
659
  <!-- Quick Answer -->
660
- <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 20px 24px; margin-bottom: 20px;">
661
- <div style="font-size: 13px; font-weight: 700; color: #16a34a; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;">Here Is Your Result</div>
662
- <div style="font-size: 20px; font-weight: 700; color: #166534;">
663
- You need <span style="background: #166534; color: white; border-radius: 8px; padding: 2px 14px; font-size: 24px;">{total_bags:.1f}</span> bags of {bag_size} kg poultry feed<br>
664
  to raise <strong>{birds:,}</strong> {breed} broilers from day-old to <strong>{age_text} ({total_days} days)</strong>
665
  </div>
666
- <div style="margin-top: 8px; font-size: 18px; font-weight: 700; color: #1e40af;">
667
- Buy <span style="background: #1e40af; color: white; border-radius: 8px; padding: 2px 14px; font-size: 22px;">{rounded_bags}</span> bags to make sure you have enough feed.
668
  </div>
669
- <div style="margin-top: 8px; display: flex; gap: 16px; flex-wrap: wrap; font-size: 14px; color: #4b5563;">
670
- <span>πŸ” Birds: <strong>{birds:,} broilers</strong></span>
671
- <span>πŸ“… Age: <strong>{age_text} ({total_days} days)</strong></span>
672
- <span>🏷️ Breed: <strong>{breed}</strong></span>
673
  </div>
674
- <div style="margin-top: 8px; display: flex; gap: 8px; font-size: 13px;">
675
- <span style="background: {breed_color}; color: white; padding: 2px 12px; border-radius: 12px; font-weight: 600;">{breed}</span>
676
- <span style="background: #6b7280; color: white; padding: 2px 12px; border-radius: 12px; font-weight: 600;">{country_name}</span>
677
  </div>
678
  </div>
679
 
680
  <!-- Feed Breakdown -->
681
- <div style="margin-bottom: 16px;">
682
- <div style="font-size: 14px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px;">Feed Breakdown</div>
683
- <table style="width: 100%; border-collapse: collapse; font-size: 15px;">
684
  <tr style="border-bottom: 1px solid #e5e7eb;">
685
- <td style="padding: 8px 4px;"><strong>Starter (0 – 4 weeks)</strong></td>
686
- <td style="padding: 8px 4px; text-align: right;">{starter_kg:,.1f} kg</td>
687
- <td style="padding: 8px 4px; text-align: right; font-weight: 700; color: #1e293b;">{starter_bags_display} bags</td>
688
  </tr>
689
  <tr style="border-bottom: 1px solid #e5e7eb;">
690
- <td style="padding: 8px 4px;"><strong>Finisher (4 – 8 weeks)</strong></td>
691
- <td style="padding: 8px 4px; text-align: right;">{finisher_kg:,.1f} kg</td>
692
- <td style="padding: 8px 4px; text-align: right; font-weight: 700; color: #1e293b;">{finisher_bags_display} bags</td>
693
  </tr>
694
  <tr>
695
- <td style="padding: 8px 4px; font-weight: 700;">TOTAL</td>
696
- <td style="padding: 8px 4px; text-align: right; font-weight: 700;">{total_feed_kg:,.1f} kg</td>
697
- <td style="padding: 8px 4px; text-align: right; font-weight: 700; font-size: 18px; color: #166534;">{total_bags:.1f} bags</td>
698
  </tr>
699
  </table>
700
  </div>
701
 
702
  <!-- Feed Cost -->
703
- <div style="background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 12px; padding: 16px 20px; margin-bottom: 16px;">
704
- <div style="font-size: 14px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px;">Feed Cost Estimate</div>
705
- <div style="display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap;">
706
- <span style="font-size: 16px; color: #4b5563;">Approximately</span>
707
- <span style="background: #1e40af; color: white; border-radius: 8px; padding: 2px 16px; font-size: 20px; font-weight: 700;">{rounded_bags} bags</span>
708
- <span style="font-size: 16px; color: #4b5563;">Γ— {currency_symbol}{price_per_bag:,.0f} per bag</span>
709
  </div>
710
- <div style="font-size: 28px; font-weight: 800; color: #1e40af; margin-top: 4px;">
711
  {currency_symbol}{total_cost:,.0f}
712
  </div>
713
  </div>
714
 
715
  <!-- Expected Performance -->
716
- <div style="border-top: 1px solid #e5e7eb; padding-top: 14px; margin-bottom: 16px;">
717
- <div style="font-size: 14px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;">Expected Performance</div>
718
- <div style="display: flex; gap: 24px; flex-wrap: wrap; font-size: 15px;">
719
- <div>Body weight per bird: <span style="font-weight: 700; font-size: 17px;">{expected_weight:.3f} kg</span></div>
720
- <div>Flock live weight: <span style="font-weight: 700; font-size: 17px;">{flock_weight:,.1f} kg</span></div>
721
  </div>
722
  </div>
723
 
724
  <!-- Share Results -->
725
- <div style="border-top: 1px solid #e5e7eb; padding-top: 14px;">
726
- <div style="font-size: 14px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px;">Share Results</div>
727
- <div style="display: flex; gap: 10px; flex-wrap: wrap;">
728
  <a href="{share_links['whatsapp']}" target="_blank" style="text-decoration: none;">
729
- <button style="background: #25D366; color: white; padding: 8px 18px; border: none; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;">WhatsApp</button>
730
  </a>
731
  <a href="{share_links['email']}" target="_blank" style="text-decoration: none;">
732
- <button style="background: #ea4335; color: white; padding: 8px 18px; border: none; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;">Email</button>
733
  </a>
734
  <a href="{share_links['facebook']}" target="_blank" style="text-decoration: none;">
735
- <button style="background: #1877f2; color: white; padding: 8px 18px; border: none; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;">Facebook</button>
736
  </a>
737
  <a href="{share_links['twitter']}" target="_blank" style="text-decoration: none;">
738
- <button style="background: #000000; color: white; padding: 8px 18px; border: none; border-radius: 8px; cursor: pointer; font-size: 14px; font-weight: 600;">Twitter/X</button>
739
  </a>
740
  </div>
741
  </div>
742
 
743
- <div style="margin-top: 14px; font-size: 12px; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 10px;">
744
  Estimate based on {breed} benchmark. Actual results may vary.
745
  </div>
746
  </div>
@@ -960,38 +960,99 @@ def export_calculations_wrapper():
960
 
961
 
962
  # ============================================================
963
- # CSS
964
  # ============================================================
965
 
966
  CSS = """
967
- body { background: #f6f8f4; }
968
- .gradio-container { max-width: 1200px !important; margin: auto !important; }
 
 
 
 
 
 
 
 
969
 
970
- .main-title { text-align: center; padding: 15px 10px 5px 10px; }
971
- .main-title h1 { font-size: 34px; margin-bottom: 4px; }
972
- .main-title p { font-size: 17px; color: #555; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
973
 
974
  .answer-box {
975
- background: white;
976
- border-radius: 16px;
977
- padding: 20px 24px;
978
- border: 1px solid #e5e7eb;
979
- box-shadow: 0 1px 3px rgba(0,0,0,0.05);
 
980
  }
981
 
982
  .email-box {
983
- border: 2px solid #d9e7d2;
984
- border-radius: 12px;
985
- padding: 10px;
986
- background: #fbfdf9;
987
  }
988
 
989
- button { min-height: 48px !important; }
 
990
  .admin-login {
991
- border: 2px solid #d97706;
992
- border-radius: 12px;
993
- padding: 15px;
994
- background: #fffbeb;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
995
  }
996
  """
997
 
@@ -999,7 +1060,7 @@ button { min-height: 48px !important; }
999
  # UI
1000
  # ============================================================
1001
 
1002
- with gr.Blocks(title=APP_NAME) as demo:
1003
 
1004
  gr.HTML("""
1005
  <div class="main-title">
@@ -1011,7 +1072,7 @@ with gr.Blocks(title=APP_NAME) as demo:
1011
  with gr.Row(equal_height=True):
1012
 
1013
  # LEFT COLUMN: INPUTS
1014
- with gr.Column(scale=1, min_width=350):
1015
 
1016
  with gr.Group():
1017
  gr.Markdown("## πŸ” Breed & Birds")
@@ -1030,7 +1091,7 @@ with gr.Blocks(title=APP_NAME) as demo:
1030
  allow_custom_value=True,
1031
  )
1032
 
1033
- gr.Markdown("## πŸ“… Expected Age of Birds")
1034
 
1035
  with gr.Row():
1036
  weeks = gr.Dropdown(
@@ -1058,7 +1119,7 @@ with gr.Blocks(title=APP_NAME) as demo:
1058
  minimum=0,
1059
  )
1060
 
1061
- gr.Markdown("## 🌍 Country & Currency")
1062
 
1063
  detected_country = detect_country_from_env() or "NG"
1064
  country_choices = ["Auto-Detect"] + [code for code, _ in COUNTRY_LIST]
@@ -1090,14 +1151,14 @@ with gr.Blocks(title=APP_NAME) as demo:
1090
  save_status = gr.Markdown("")
1091
 
1092
  # RIGHT COLUMN: RESULTS
1093
- with gr.Column(scale=1, min_width=350):
1094
  gr.Markdown("## 🎯 Quick Answer")
1095
  result = gr.HTML(
1096
  value="""
1097
- <div style="font-size: 16px; color: #9ca3af; text-align: center; padding: 40px 20px;">
1098
- <div style="font-size: 48px; margin-bottom: 12px;">πŸ”</div>
1099
  <div>Select your breed, enter details and click <strong>Calculate</strong></div>
1100
- <div style="font-size: 14px; margin-top: 8px;">Your feed estimate will appear here</div>
1101
  </div>
1102
  """,
1103
  elem_classes=["answer-box"],
 
571
 
572
 
573
  # ============================================================
574
+ # FEED CALCULATION - MOBILE-FRIENDLY
575
  # ============================================================
576
 
577
  def calculate_feed(birds, weeks, days, bag_size, price_per_bag, email, country_code, breed, request: gr.Request):
 
645
  # Generate share links
646
  share_links = get_share_links()
647
 
648
+ # Output HTML - MOBILE-FRIENDLY
649
  starter_bags_display = f"{starter_bags:.1f}"
650
  finisher_bags_display = f"{finisher_bags:.1f}"
651
 
 
654
  age_text += f" + {days} day{'s' if days != 1 else ''}"
655
 
656
  html = f"""
657
+ <div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; font-size: 15px; line-height: 1.5; color: #1a1a1a; background: white; border-radius: 12px; padding: 16px;">
658
 
659
  <!-- Quick Answer -->
660
+ <div style="background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 10px; padding: 14px 16px; margin-bottom: 16px;">
661
+ <div style="font-size: 12px; font-weight: 700; color: #16a34a; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px;">Here Is Your Result</div>
662
+ <div style="font-size: 16px; font-weight: 700; color: #166534;">
663
+ You need <span style="background: #166534; color: white; border-radius: 6px; padding: 2px 12px; font-size: 20px;">{total_bags:.1f}</span> bags of {bag_size} kg poultry feed<br>
664
  to raise <strong>{birds:,}</strong> {breed} broilers from day-old to <strong>{age_text} ({total_days} days)</strong>
665
  </div>
666
+ <div style="margin-top: 6px; font-size: 16px; font-weight: 700; color: #1e40af;">
667
+ Buy <span style="background: #1e40af; color: white; border-radius: 6px; padding: 2px 12px; font-size: 18px;">{rounded_bags}</span> bags to make sure you have enough feed.
668
  </div>
669
+ <div style="margin-top: 6px; display: flex; gap: 10px; flex-wrap: wrap; font-size: 13px; color: #4b5563;">
670
+ <span>πŸ” <strong>{birds:,}</strong></span>
671
+ <span>πŸ“… <strong>{age_text}</strong></span>
672
+ <span>🏷️ <strong>{breed}</strong></span>
673
  </div>
674
+ <div style="margin-top: 6px; display: flex; gap: 6px; font-size: 12px;">
675
+ <span style="background: {breed_color}; color: white; padding: 2px 10px; border-radius: 10px; font-weight: 600;">{breed}</span>
676
+ <span style="background: #6b7280; color: white; padding: 2px 10px; border-radius: 10px; font-weight: 600;">{country_name}</span>
677
  </div>
678
  </div>
679
 
680
  <!-- Feed Breakdown -->
681
+ <div style="margin-bottom: 14px;">
682
+ <div style="font-size: 12px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;">Feed Breakdown</div>
683
+ <table style="width: 100%; border-collapse: collapse; font-size: 14px;">
684
  <tr style="border-bottom: 1px solid #e5e7eb;">
685
+ <td style="padding: 6px 4px;"><strong>Starter</strong></td>
686
+ <td style="padding: 6px 4px; text-align: right;">{starter_kg:,.1f} kg</td>
687
+ <td style="padding: 6px 4px; text-align: right; font-weight: 700; color: #1e293b;">{starter_bags_display} bags</td>
688
  </tr>
689
  <tr style="border-bottom: 1px solid #e5e7eb;">
690
+ <td style="padding: 6px 4px;"><strong>Finisher</strong></td>
691
+ <td style="padding: 6px 4px; text-align: right;">{finisher_kg:,.1f} kg</td>
692
+ <td style="padding: 6px 4px; text-align: right; font-weight: 700; color: #1e293b;">{finisher_bags_display} bags</td>
693
  </tr>
694
  <tr>
695
+ <td style="padding: 6px 4px; font-weight: 700;">TOTAL</td>
696
+ <td style="padding: 6px 4px; text-align: right; font-weight: 700;">{total_feed_kg:,.1f} kg</td>
697
+ <td style="padding: 6px 4px; text-align: right; font-weight: 700; font-size: 16px; color: #166534;">{total_bags:.1f} bags</td>
698
  </tr>
699
  </table>
700
  </div>
701
 
702
  <!-- Feed Cost -->
703
+ <div style="background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 10px; padding: 12px 16px; margin-bottom: 14px;">
704
+ <div style="font-size: 12px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px;">Feed Cost Estimate</div>
705
+ <div style="display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; font-size: 14px;">
706
+ <span style="color: #4b5563;">Approx</span>
707
+ <span style="background: #1e40af; color: white; border-radius: 6px; padding: 2px 12px; font-size: 18px; font-weight: 700;">{rounded_bags} bags</span>
708
+ <span style="color: #4b5563;">Γ— {currency_symbol}{price_per_bag:,.0f}</span>
709
  </div>
710
+ <div style="font-size: 24px; font-weight: 800; color: #1e40af; margin-top: 2px;">
711
  {currency_symbol}{total_cost:,.0f}
712
  </div>
713
  </div>
714
 
715
  <!-- Expected Performance -->
716
+ <div style="border-top: 1px solid #e5e7eb; padding-top: 12px; margin-bottom: 14px;">
717
+ <div style="font-size: 12px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 4px;">Expected Performance</div>
718
+ <div style="display: flex; gap: 16px; flex-wrap: wrap; font-size: 14px;">
719
+ <div>Body weight: <span style="font-weight: 700;">{expected_weight:.3f} kg</span></div>
720
+ <div>Flock weight: <span style="font-weight: 700;">{flock_weight:,.1f} kg</span></div>
721
  </div>
722
  </div>
723
 
724
  <!-- Share Results -->
725
+ <div style="border-top: 1px solid #e5e7eb; padding-top: 12px;">
726
+ <div style="font-size: 12px; font-weight: 700; color: #6b7280; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px;">Share Results</div>
727
+ <div style="display: flex; gap: 8px; flex-wrap: wrap;">
728
  <a href="{share_links['whatsapp']}" target="_blank" style="text-decoration: none;">
729
+ <button style="background: #25D366; color: white; padding: 6px 14px; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 600;">WhatsApp</button>
730
  </a>
731
  <a href="{share_links['email']}" target="_blank" style="text-decoration: none;">
732
+ <button style="background: #ea4335; color: white; padding: 6px 14px; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 600;">Email</button>
733
  </a>
734
  <a href="{share_links['facebook']}" target="_blank" style="text-decoration: none;">
735
+ <button style="background: #1877f2; color: white; padding: 6px 14px; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 600;">Facebook</button>
736
  </a>
737
  <a href="{share_links['twitter']}" target="_blank" style="text-decoration: none;">
738
+ <button style="background: #000000; color: white; padding: 6px 14px; border: none; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 600;">Twitter/X</button>
739
  </a>
740
  </div>
741
  </div>
742
 
743
+ <div style="margin-top: 12px; font-size: 11px; color: #9ca3af; border-top: 1px solid #f3f4f6; padding-top: 8px;">
744
  Estimate based on {breed} benchmark. Actual results may vary.
745
  </div>
746
  </div>
 
960
 
961
 
962
  # ============================================================
963
+ # MOBILE-FRIENDLY CSS
964
  # ============================================================
965
 
966
  CSS = """
967
+ /* Force light theme */
968
+ .gradio-container {
969
+ max-width: 100% !important;
970
+ padding: 8px !important;
971
+ }
972
+
973
+ body {
974
+ background: #f6f8f4 !important;
975
+ color: #1a1a1a !important;
976
+ }
977
 
978
+ /* Fix dark mode issues */
979
+ .dark .gradio-container {
980
+ background: #f6f8f4 !important;
981
+ color: #1a1a1a !important;
982
+ }
983
+
984
+ .main-title {
985
+ text-align: center;
986
+ padding: 10px 5px 5px 5px;
987
+ }
988
+ .main-title h1 {
989
+ font-size: 24px;
990
+ margin-bottom: 2px;
991
+ }
992
+ .main-title p {
993
+ font-size: 14px;
994
+ color: #555;
995
+ }
996
 
997
  .answer-box {
998
+ background: white !important;
999
+ border-radius: 12px !important;
1000
+ padding: 12px 14px !important;
1001
+ border: 1px solid #e5e7eb !important;
1002
+ box-shadow: 0 1px 3px rgba(0,0,0,0.05) !important;
1003
+ min-height: 200px !important;
1004
  }
1005
 
1006
  .email-box {
1007
+ border: 2px solid #d9e7d2 !important;
1008
+ border-radius: 10px !important;
1009
+ padding: 8px !important;
1010
+ background: #fbfdf9 !important;
1011
  }
1012
 
1013
+ button { min-height: 44px !important; }
1014
+
1015
  .admin-login {
1016
+ border: 2px solid #d97706 !important;
1017
+ border-radius: 10px !important;
1018
+ padding: 12px !important;
1019
+ background: #fffbeb !important;
1020
+ }
1021
+
1022
+ /* Force all text to be readable */
1023
+ label, span, p, div, h1, h2, h3, h4 {
1024
+ color: #1a1a1a !important;
1025
+ }
1026
+
1027
+ /* Fix dropdown text */
1028
+ select, input, textarea {
1029
+ color: #1a1a1a !important;
1030
+ background: white !important;
1031
+ }
1032
+
1033
+ /* Fix table text */
1034
+ table td, table th {
1035
+ color: #1a1a1a !important;
1036
+ }
1037
+
1038
+ /* Force white background on all containers */
1039
+ .gradio-container, .gradio-row, .gradio-column, .gradio-group {
1040
+ background: transparent !important;
1041
+ }
1042
+
1043
+ /* Mobile specific */
1044
+ @media screen and (max-width: 768px) {
1045
+ .gradio-container {
1046
+ padding: 4px !important;
1047
+ }
1048
+
1049
+ .main-title h1 {
1050
+ font-size: 20px !important;
1051
+ }
1052
+
1053
+ .answer-box {
1054
+ padding: 8px 10px !important;
1055
+ }
1056
  }
1057
  """
1058
 
 
1060
  # UI
1061
  # ============================================================
1062
 
1063
+ with gr.Blocks(title=APP_NAME, css=CSS) as demo:
1064
 
1065
  gr.HTML("""
1066
  <div class="main-title">
 
1072
  with gr.Row(equal_height=True):
1073
 
1074
  # LEFT COLUMN: INPUTS
1075
+ with gr.Column(scale=1, min_width=300):
1076
 
1077
  with gr.Group():
1078
  gr.Markdown("## πŸ” Breed & Birds")
 
1091
  allow_custom_value=True,
1092
  )
1093
 
1094
+ gr.Markdown("## πŸ“… Expected Age")
1095
 
1096
  with gr.Row():
1097
  weeks = gr.Dropdown(
 
1119
  minimum=0,
1120
  )
1121
 
1122
+ gr.Markdown("## 🌍 Country")
1123
 
1124
  detected_country = detect_country_from_env() or "NG"
1125
  country_choices = ["Auto-Detect"] + [code for code, _ in COUNTRY_LIST]
 
1151
  save_status = gr.Markdown("")
1152
 
1153
  # RIGHT COLUMN: RESULTS
1154
+ with gr.Column(scale=1, min_width=300):
1155
  gr.Markdown("## 🎯 Quick Answer")
1156
  result = gr.HTML(
1157
  value="""
1158
+ <div style="font-size: 14px; color: #9ca3af; text-align: center; padding: 30px 10px; background: white; border-radius: 12px;">
1159
+ <div style="font-size: 40px; margin-bottom: 10px;">πŸ”</div>
1160
  <div>Select your breed, enter details and click <strong>Calculate</strong></div>
1161
+ <div style="font-size: 13px; margin-top: 6px;">Your feed estimate will appear here</div>
1162
  </div>
1163
  """,
1164
  elem_classes=["answer-box"],