Álvaro Valenzuela Valdes commited on
Commit
1dce4c2
·
1 Parent(s): 1dbaf75

style: Fix responsive layout for Firefox/Mac and improve table stability

Browse files
frontend/app/page.tsx CHANGED
@@ -146,12 +146,13 @@ export default function HomePage() {
146
  </button>
147
  </div>
148
 
149
- <div className="mx-auto flex flex-col md:flex-row min-h-screen max-w-[1500px] gap-4 md:gap-8 px-4 md:px-8 py-4 md:py-6">
150
- <div className={`${isMobileMenuOpen ? "fixed inset-0 z-[60] flex" : "hidden"} md:block md:sticky md:top-6 md:h-[calc(100vh-3rem)]`}>
 
151
  {isMobileMenuOpen && (
152
  <div className="absolute inset-0 bg-black/80 backdrop-blur-sm md:hidden" onClick={() => setIsMobileMenuOpen(false)} />
153
  )}
154
- <div className="relative z-10 w-72 md:w-auto h-full md:h-auto">
155
  <Sidebar
156
  tabs={tabs}
157
  activeTab={activeTab}
@@ -164,7 +165,8 @@ export default function HomePage() {
164
  </div>
165
  </div>
166
 
167
- <main className="flex-1 flex flex-col gap-6 overflow-hidden w-full">
 
168
  {/* Dashboard Header */}
169
  <header className="flex flex-col md:flex-row md:items-center justify-between gap-4 px-2">
170
  <div>
 
146
  </button>
147
  </div>
148
 
149
+ <div className="flex flex-col md:flex-row min-h-screen gap-6 p-4 md:p-8">
150
+ {/* Sidebar Container */}
151
+ <div className={`${isMobileMenuOpen ? "fixed inset-0 z-[60] flex" : "hidden"} md:block md:w-72 md:shrink-0 md:sticky md:top-8 md:h-[calc(100vh-4rem)]`}>
152
  {isMobileMenuOpen && (
153
  <div className="absolute inset-0 bg-black/80 backdrop-blur-sm md:hidden" onClick={() => setIsMobileMenuOpen(false)} />
154
  )}
155
+ <div className="relative z-10 w-72 h-full">
156
  <Sidebar
157
  tabs={tabs}
158
  activeTab={activeTab}
 
165
  </div>
166
  </div>
167
 
168
+ {/* Main Content */}
169
+ <main className="flex-1 min-w-0 flex flex-col gap-8">
170
  {/* Dashboard Header */}
171
  <header className="flex flex-col md:flex-row md:items-center justify-between gap-4 px-2">
172
  <div>
frontend/components/TenderSearch.tsx CHANGED
@@ -162,18 +162,19 @@ export default function TenderSearch({ tenders, onSearch, onAnalyze, forceShowFo
162
  </p>
163
  </div>
164
  ) : (
165
- <div className="glass-card rounded-3xl overflow-hidden overflow-x-auto shadow-2xl">
166
- <table className="w-full min-w-[1000px] text-left text-sm">
167
- <thead className="bg-white/5 text-slate-500 uppercase text-[10px] tracking-widest font-bold">
168
- <tr>
169
- <th className="px-6 py-5">Code</th>
170
- <th className="px-6 py-5">Opportunity</th>
171
- <th className="px-6 py-5">Buyer</th>
172
- <th className="px-6 py-5 text-center">Status</th>
173
- <th className="px-6 py-5 text-right">Deadline</th>
174
- <th className="px-6 py-5 text-right pr-10">Actions</th>
175
- </tr>
176
- </thead>
 
177
  <tbody className="divide-y divide-white/5">
178
  {filteredTenders.map((tender) => (
179
  <Fragment key={tender.code}>
 
162
  </p>
163
  </div>
164
  ) : (
165
+ <div className="glass-card rounded-3xl overflow-hidden shadow-2xl border border-white/5">
166
+ <div className="overflow-x-auto custom-scrollbar">
167
+ <table className="w-full text-left text-sm table-fixed border-collapse">
168
+ <thead className="bg-white/5 text-slate-500 uppercase text-[10px] tracking-widest font-bold border-b border-white/5">
169
+ <tr>
170
+ <th className="px-6 py-5 w-[120px]">Code</th>
171
+ <th className="px-6 py-5 w-[300px]">Opportunity</th>
172
+ <th className="px-6 py-5 w-[200px]">Buyer</th>
173
+ <th className="px-6 py-5 text-center w-[120px]">Status</th>
174
+ <th className="px-6 py-5 text-right w-[120px]">Deadline</th>
175
+ <th className="px-6 py-5 text-right pr-10 w-[120px]">Actions</th>
176
+ </tr>
177
+ </thead>
178
  <tbody className="divide-y divide-white/5">
179
  {filteredTenders.map((tender) => (
180
  <Fragment key={tender.code}>