dickiethinking commited on
Commit
cad1c9b
Β·
verified Β·
1 Parent(s): 6a1a11d

The site needs the ability to use zero auth in order to search the user's email for all relevant case information

Browse files
Files changed (5) hide show
  1. README.md +8 -5
  2. components/email-search.js +107 -0
  3. index.html +239 -19
  4. script.js +265 -0
  5. style.css +57 -18
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Justicemail Crusader
3
- emoji: πŸ“‰
4
- colorFrom: blue
5
- colorTo: yellow
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: JusticeMail Crusader πŸš€
3
+ colorFrom: red
4
+ colorTo: pink
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
components/email-search.js ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class EmailSearch extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ .email-search-container {
7
+ background: rgba(31, 41, 55, 0.8);
8
+ border-radius: 0.5rem;
9
+ padding: 1.5rem;
10
+ margin: 1rem 0;
11
+ border: 1px solid #4b5563;
12
+ }
13
+ .search-header {
14
+ display: flex;
15
+ align-items: center;
16
+ margin-bottom: 1rem;
17
+ }
18
+ .search-icon {
19
+ margin-right: 0.5rem;
20
+ color: #f43f5e;
21
+ }
22
+ .search-btn {
23
+ background: #f43f5e;
24
+ color: white;
25
+ border: none;
26
+ padding: 0.5rem 1rem;
27
+ border-radius: 0.375rem;
28
+ cursor: pointer;
29
+ font-weight: 500;
30
+ transition: background 0.2s;
31
+ }
32
+ .search-btn:hover {
33
+ background: #e11d48;
34
+ }
35
+ .search-results {
36
+ margin-top: 1rem;
37
+ max-height: 300px;
38
+ overflow-y: auto;
39
+ }
40
+ .result-item {
41
+ padding: 0.75rem;
42
+ border-bottom: 1px solid #4b5563;
43
+ display: flex;
44
+ justify-content: space-between;
45
+ }
46
+ .result-item:last-child {
47
+ border-bottom: none;
48
+ }
49
+ </style>
50
+ <div class="email-search-container">
51
+ <div class="search-header">
52
+ <i data-feather="mail" class="search-icon"></i>
53
+ <h3>Search Your Email for Case Documents</h3>
54
+ </div>
55
+ <p>Find all court-related communications without sharing your credentials</p>
56
+ <button class="search-btn" id="connectEmail">Connect Email</button>
57
+ <div class="search-results" id="searchResults"></div>
58
+ </div>
59
+ `;
60
+
61
+ this.shadowRoot.querySelector('#connectEmail').addEventListener('click', () => this.handleEmailConnect());
62
+ feather.replace();
63
+ }
64
+
65
+ async handleEmailConnect() {
66
+ try {
67
+ // Using ZeroAuth protocol for email search
68
+ const emailClient = await window.zeroAuth.emailClient();
69
+ const results = await emailClient.search({
70
+ query: 'family court OR custody OR hearing OR affidavit',
71
+ maxResults: 50
72
+ });
73
+
74
+ this.displayResults(results.messages);
75
+ } catch (error) {
76
+ console.error('Email search failed:', error);
77
+ this.displayError();
78
+ }
79
+ }
80
+
81
+ displayResults(messages) {
82
+ const resultsContainer = this.shadowRoot.getElementById('searchResults');
83
+ resultsContainer.innerHTML = '';
84
+
85
+ if (messages.length === 0) {
86
+ resultsContainer.innerHTML = '<p>No court-related emails found</p>';
87
+ return;
88
+ }
89
+
90
+ messages.forEach(msg => {
91
+ const item = document.createElement('div');
92
+ item.className = 'result-item';
93
+ item.innerHTML = `
94
+ <span>${msg.subject}</span>
95
+ <span>${new Date(msg.date).toLocaleDateString()}</span>
96
+ `;
97
+ resultsContainer.appendChild(item);
98
+ });
99
+ }
100
+
101
+ displayError() {
102
+ const resultsContainer = this.shadowRoot.getElementById('searchResults');
103
+ resultsContainer.innerHTML = '<p>Error searching emails. Please try again.</p>';
104
+ }
105
+ }
106
+
107
+ customElements.define('email-search', EmailSearch);
index.html CHANGED
@@ -1,19 +1,239 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en" class="dark">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Court Crusader | Fight Family Court Injustice</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script>
12
+ tailwind.config = {
13
+ darkMode: 'class',
14
+ theme: {
15
+ extend: {
16
+ colors: {
17
+ rose: {
18
+ 500: '#f43f5e',
19
+ }
20
+ }
21
+ }
22
+ }
23
+ }
24
+ </script>
25
+ </head>
26
+ <body class="bg-gray-900 text-gray-100 min-h-screen">
27
+ <custom-navbar></custom-navbar>
28
+
29
+ <main class="container mx-auto px-4 py-8">
30
+ <!-- Hero Section -->
31
+ <section class="bg-gray-800 rounded-xl p-8 mb-10 shadow-lg">
32
+ <div class="flex flex-col md:flex-row items-center">
33
+ <div class="md:w-1/2 mb-6 md:mb-0">
34
+ <h1 class="text-4xl md:text-5xl font-bold mb-4 text-red-500">Fight Back Against Family Court Injustice</h1>
35
+ <p class="text-xl mb-6 text-rose-300">Document misconduct, build your case bundle, and expose corruption in New Zealand's family court system.</p>
36
+ <div class="flex flex-col sm:flex-row gap-4">
37
+ <a href="#document" class="bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-6 rounded-lg text-center transition">Document Misconduct</a>
38
+ <a href="#bundle" class="bg-rose-600 hover:bg-rose-700 text-white font-bold py-3 px-6 rounded-lg text-center transition">Build Your Bundle</a>
39
+ </div>
40
+ </div>
41
+ <div class="md:w-1/2">
42
+ <img src="http://static.photos/legal/1200x630/42" alt="Justice Scale" class="rounded-lg shadow-xl">
43
+ </div>
44
+ </div>
45
+ </section>
46
+
47
+ <!-- Features Section -->
48
+ <section class="mb-16">
49
+ <h2 class="text-3xl font-bold mb-8 text-center text-red-500">Your Legal Empowerment Tools</h2>
50
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
51
+ <div class="bg-gray-800 p-6 rounded-xl shadow-lg">
52
+ <div class="text-red-500 mb-4">
53
+ <i data-feather="file-text" class="w-12 h-12"></i>
54
+ </div>
55
+ <h3 class="text-xl font-bold mb-2">Case Bundle Builder</h3>
56
+ <p class="text-gray-300">Organize your evidence, documents, and timeline into a professional court bundle automatically.</p>
57
+ </div>
58
+ <div class="bg-gray-800 p-6 rounded-xl shadow-lg">
59
+ <div class="text-red-500 mb-4">
60
+ <i data-feather="alert-triangle" class="w-12 h-12"></i>
61
+ </div>
62
+ <h3 class="text-xl font-bold mb-2">Misconduct Tracker</h3>
63
+ <p class="text-gray-300">Document and report unethical behavior by lawyers, judges, and social workers with timestamped evidence.</p>
64
+ </div>
65
+ <div class="bg-gray-800 p-6 rounded-xl shadow-lg">
66
+ <div class="text-red-500 mb-4">
67
+ <i data-feather="users" class="w-12 h-12"></i>
68
+ </div>
69
+ <h3 class="text-xl font-bold mb-2">Public Accountability</h3>
70
+ <p class="text-gray-300">Our verified database exposes patterns of misconduct across multiple cases and litigants.</p>
71
+ </div>
72
+ </div>
73
+ </section>
74
+
75
+ <!-- Document Misconduct Section -->
76
+ <section id="document" class="mb-16 bg-gray-800 rounded-xl p-8 shadow-lg">
77
+ <h2 class="text-3xl font-bold mb-6 text-red-500">Report Professional Misconduct</h2>
78
+ <form class="space-y-6">
79
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
80
+ <div>
81
+ <label class="block text-gray-300 mb-2">Name of Professional</label>
82
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent">
83
+ </div>
84
+ <div>
85
+ <label class="block text-gray-300 mb-2">Role</label>
86
+ <select class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent">
87
+ <option>Judge</option>
88
+ <option>Lawyer</option>
89
+ <option>Social Worker</option>
90
+ <option>Police Officer</option>
91
+ <option>Court Staff</option>
92
+ </select>
93
+ </div>
94
+ </div>
95
+ <div>
96
+ <label class="block text-gray-300 mb-2">Date of Incident</label>
97
+ <input type="date" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent">
98
+ </div>
99
+ <div>
100
+ <label class="block text-gray-300 mb-2">Description of Misconduct</label>
101
+ <textarea rows="4" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent"></textarea>
102
+ </div>
103
+ <div>
104
+ <label class="block text-gray-300 mb-2">Evidence (Upload Files)</label>
105
+ <div class="flex items-center justify-center w-full">
106
+ <label class="flex flex-col w-full h-32 border-2 border-dashed border-gray-600 hover:border-red-500 rounded-lg cursor-pointer bg-gray-700 hover:bg-gray-700/50">
107
+ <div class="flex flex-col items-center justify-center pt-7">
108
+ <i data-feather="upload" class="w-8 h-8 text-gray-400"></i>
109
+ <p class="pt-1 text-sm text-gray-400">Click to upload documents</p>
110
+ </div>
111
+ <input type="file" class="opacity-0" multiple>
112
+ </label>
113
+ </div>
114
+ </div>
115
+ <button type="submit" class="bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-6 rounded-lg transition">Submit Report</button>
116
+ </form>
117
+ </section>
118
+ <!-- Email Search Section -->
119
+ <section class="mb-16 bg-gray-800 rounded-xl p-8 shadow-lg">
120
+ <h2 class="text-3xl font-bold mb-6 text-red-500">Find Your Case Emails</h2>
121
+ <email-search></email-search>
122
+ </section>
123
+
124
+ <!-- Case Bundle Section -->
125
+ <section id="bundle" class="mb-16 bg-gray-800 rounded-xl p-8 shadow-lg">
126
+ <h2 class="text-3xl font-bold mb-6 text-red-500">Build Your Court Bundle</h2>
127
+ <div class="mb-8">
128
+ <div class="flex items-center mb-4">
129
+ <div class="flex-1 border-t-2 border-gray-600"></div>
130
+ <span class="px-4 text-gray-400">Step 1: Case Details</span>
131
+ <div class="flex-1 border-t-2 border-gray-600"></div>
132
+ </div>
133
+ <form class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
134
+ <div>
135
+ <label class="block text-gray-300 mb-2">Case Number</label>
136
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
137
+ </div>
138
+ <div>
139
+ <label class="block text-gray-300 mb-2">Court Location</label>
140
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
141
+ </div>
142
+ <div>
143
+ <label class="block text-gray-300 mb-2">Your Role</label>
144
+ <select class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
145
+ <option>Applicant</option>
146
+ <option>Respondent</option>
147
+ </select>
148
+ </div>
149
+ <div>
150
+ <label class="block text-gray-300 mb-2">Opposing Party Name</label>
151
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
152
+ </div>
153
+ </form>
154
+
155
+ <div class="flex items-center mb-4">
156
+ <div class="flex-1 border-t-2 border-gray-600"></div>
157
+ <span class="px-4 text-gray-400">Step 2: Upload Documents</span>
158
+ <div class="flex-1 border-t-2 border-gray-600"></div>
159
+ </div>
160
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-8">
161
+ <div class="border-2 border-dashed border-gray-600 rounded-lg p-4 text-center hover:border-red-500 cursor-pointer transition">
162
+ <i data-feather="file-text" class="w-8 h-8 mx-auto text-gray-400 mb-2"></i>
163
+ <p class="text-gray-300">Affidavits</p>
164
+ </div>
165
+ <div class="border-2 border-dashed border-gray-600 rounded-lg p-4 text-center hover:border-red-500 cursor-pointer transition">
166
+ <i data-feather="file-text" class="w-8 h-8 mx-auto text-gray-400 mb-2"></i>
167
+ <p class="text-gray-300">Evidence</p>
168
+ </div>
169
+ <div class="border-2 border-dashed border-gray-600 rounded-lg p-4 text-center hover:border-red-500 cursor-pointer transition">
170
+ <i data-feather="file-text" class="w-8 h-8 mx-auto text-gray-400 mb-2"></i>
171
+ <p class="text-gray-300">Orders</p>
172
+ </div>
173
+ </div>
174
+
175
+ <div class="flex items-center mb-4">
176
+ <div class="flex-1 border-t-2 border-gray-600"></div>
177
+ <span class="px-4 text-gray-400">Step 3: Generate Bundle</span>
178
+ <div class="flex-1 border-t-2 border-gray-600"></div>
179
+ </div>
180
+ <div class="text-center">
181
+ <button class="bg-rose-600 hover:bg-rose-700 text-white font-bold py-3 px-8 rounded-lg text-lg transition">Generate Professional Bundle</button>
182
+ </div>
183
+ </div>
184
+ </section>
185
+
186
+ <!-- Shame List Preview -->
187
+ <section class="mb-16">
188
+ <h2 class="text-3xl font-bold mb-6 text-center text-red-500">Patterns of Misconduct</h2>
189
+ <div class="bg-gray-800 rounded-xl overflow-hidden shadow-lg">
190
+ <div class="overflow-x-auto">
191
+ <table class="w-full">
192
+ <thead class="bg-gray-700">
193
+ <tr>
194
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Name</th>
195
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Role</th>
196
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Reports</th>
197
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Last Incident</th>
198
+ </tr>
199
+ </thead>
200
+ <tbody class="divide-y divide-gray-700">
201
+ <tr class="hover:bg-gray-700/50 cursor-pointer">
202
+ <td class="px-6 py-4 whitespace-nowrap text-red-400">Judge Smith</td>
203
+ <td class="px-6 py-4 whitespace-nowrap">Family Court</td>
204
+ <td class="px-6 py-4 whitespace-nowrap">14</td>
205
+ <td class="px-6 py-4 whitespace-nowrap">2023-11-15</td>
206
+ </tr>
207
+ <tr class="hover:bg-gray-700/50 cursor-pointer">
208
+ <td class="px-6 py-4 whitespace-nowrap text-red-400">Lawyer Jones</td>
209
+ <td class="px-6 py-4 whitespace-nowrap">Barrister</td>
210
+ <td class="px-6 py-4 whitespace-nowrap">9</td>
211
+ <td class="px-6 py-4 whitespace-nowrap">2023-10-28</td>
212
+ </tr>
213
+ <tr class="hover:bg-gray-700/50 cursor-pointer">
214
+ <td class="px-6 py-4 whitespace-nowrap text-red-400">SW Taylor</td>
215
+ <td class="px-6 py-4 whitespace-nowrap">Oranga Tamariki</td>
216
+ <td class="px-6 py-4 whitespace-nowrap">22</td>
217
+ <td class="px-6 py-4 whitespace-nowrap">2023-12-03</td>
218
+ </tr>
219
+ </tbody>
220
+ </table>
221
+ </div>
222
+ <div class="px-6 py-4 bg-gray-700 text-center">
223
+ <a href="#" class="text-rose-400 hover:text-rose-300 font-medium">View Full Accountability Database β†’</a>
224
+ </div>
225
+ </div>
226
+ </section>
227
+ </main>
228
+
229
+ <custom-footer></custom-footer>
230
+ <script src="components/navbar.js"></script>
231
+ <script src="components/footer.js"></script>
232
+ <script src="components/email-search.js"></script>
233
+ <script src="script.js"></script>
234
+ <script>
235
+ feather.replace();
236
+ </script>
237
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
238
+ </body>
239
+ </html>
script.js ADDED
@@ -0,0 +1,265 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ // ZeroAuth email client polyfill
3
+ if (!window.zeroAuth) {
4
+ window.zeroAuth = {
5
+ emailClient: async function() {
6
+ return {
7
+ search: async function({ query, maxResults }) {
8
+ // In a real implementation, this would use ZeroAuth protocol
9
+ // For demo purposes, we'll return mock data
10
+ console.log(`Searching emails for: ${query}`);
11
+
12
+ // Mock response
13
+ return {
14
+ messages: [
15
+ {
16
+ subject: "Re: Family Court Hearing - Case #FC12345",
17
+ date: "2023-12-15T10:30:00"
18
+ },
19
+ {
20
+ subject: "Affidavit Submission Confirmation",
21
+ date: "2023-11-28T14:15:00"
22
+ },
23
+ {
24
+ subject: "Urgent: Custody Arrangement Update",
25
+ date: "2023-11-15T09:45:00"
26
+ }
27
+ ]
28
+ };
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ <html lang="en" class="dark">
35
+ <head>
36
+ <meta charset="UTF-8">
37
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
38
+ <title>Court Crusader | Fight Family Court Injustice</title>
39
+ <link rel="stylesheet" href="style.css">
40
+ <script src="https://cdn.tailwindcss.com"></script>
41
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
42
+ <script src="https://unpkg.com/feather-icons"></script>
43
+ <script>
44
+ tailwind.config = {
45
+ darkMode: 'class',
46
+ theme: {
47
+ extend: {
48
+ colors: {
49
+ rose: {
50
+ 500: '#f43f5e',
51
+ }
52
+ }
53
+ }
54
+ }
55
+ }
56
+ </script>
57
+ </head>
58
+ <body class="bg-gray-900 text-gray-100 min-h-screen">
59
+ <custom-navbar></custom-navbar>
60
+
61
+ <main class="container mx-auto px-4 py-8">
62
+ <!-- Hero Section -->
63
+ <section class="bg-gray-800 rounded-xl p-8 mb-10 shadow-lg">
64
+ <div class="flex flex-col md:flex-row items-center">
65
+ <div class="md:w-1/2 mb-6 md:mb-0">
66
+ <h1 class="text-4xl md:text-5xl font-bold mb-4 text-red-500">Fight Back Against Family Court Injustice</h1>
67
+ <p class="text-xl mb-6 text-rose-300">Document misconduct, build your case bundle, and expose corruption in New Zealand's family court system.</p>
68
+ <div class="flex flex-col sm:flex-row gap-4">
69
+ <a href="#document" class="bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-6 rounded-lg text-center transition">Document Misconduct</a>
70
+ <a href="#bundle" class="bg-rose-600 hover:bg-rose-700 text-white font-bold py-3 px-6 rounded-lg text-center transition">Build Your Bundle</a>
71
+ </div>
72
+ </div>
73
+ <div class="md:w-1/2">
74
+ <img src="http://static.photos/legal/1200x630/42" alt="Justice Scale" class="rounded-lg shadow-xl">
75
+ </div>
76
+ </div>
77
+ </section>
78
+
79
+ <!-- Features Section -->
80
+ <section class="mb-16">
81
+ <h2 class="text-3xl font-bold mb-8 text-center text-red-500">Your Legal Empowerment Tools</h2>
82
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
83
+ <div class="bg-gray-800 p-6 rounded-xl shadow-lg">
84
+ <div class="text-red-500 mb-4">
85
+ <i data-feather="file-text" class="w-12 h-12"></i>
86
+ </div>
87
+ <h3 class="text-xl font-bold mb-2">Case Bundle Builder</h3>
88
+ <p class="text-gray-300">Organize your evidence, documents, and timeline into a professional court bundle automatically.</p>
89
+ </div>
90
+ <div class="bg-gray-800 p-6 rounded-xl shadow-lg">
91
+ <div class="text-red-500 mb-4">
92
+ <i data-feather="alert-triangle" class="w-12 h-12"></i>
93
+ </div>
94
+ <h3 class="text-xl font-bold mb-2">Misconduct Tracker</h3>
95
+ <p class="text-gray-300">Document and report unethical behavior by lawyers, judges, and social workers with timestamped evidence.</p>
96
+ </div>
97
+ <div class="bg-gray-800 p-6 rounded-xl shadow-lg">
98
+ <div class="text-red-500 mb-4">
99
+ <i data-feather="users" class="w-12 h-12"></i>
100
+ </div>
101
+ <h3 class="text-xl font-bold mb-2">Public Accountability</h3>
102
+ <p class="text-gray-300">Our verified database exposes patterns of misconduct across multiple cases and litigants.</p>
103
+ </div>
104
+ </div>
105
+ </section>
106
+
107
+ <!-- Document Misconduct Section -->
108
+ <section id="document" class="mb-16 bg-gray-800 rounded-xl p-8 shadow-lg">
109
+ <h2 class="text-3xl font-bold mb-6 text-red-500">Report Professional Misconduct</h2>
110
+ <form class="space-y-6">
111
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
112
+ <div>
113
+ <label class="block text-gray-300 mb-2">Name of Professional</label>
114
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent">
115
+ </div>
116
+ <div>
117
+ <label class="block text-gray-300 mb-2">Role</label>
118
+ <select class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent">
119
+ <option>Judge</option>
120
+ <option>Lawyer</option>
121
+ <option>Social Worker</option>
122
+ <option>Police Officer</option>
123
+ <option>Court Staff</option>
124
+ </select>
125
+ </div>
126
+ </div>
127
+ <div>
128
+ <label class="block text-gray-300 mb-2">Date of Incident</label>
129
+ <input type="date" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent">
130
+ </div>
131
+ <div>
132
+ <label class="block text-gray-300 mb-2">Description of Misconduct</label>
133
+ <textarea rows="4" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-red-500 focus:border-transparent"></textarea>
134
+ </div>
135
+ <div>
136
+ <label class="block text-gray-300 mb-2">Evidence (Upload Files)</label>
137
+ <div class="flex items-center justify-center w-full">
138
+ <label class="flex flex-col w-full h-32 border-2 border-dashed border-gray-600 hover:border-red-500 rounded-lg cursor-pointer bg-gray-700 hover:bg-gray-700/50">
139
+ <div class="flex flex-col items-center justify-center pt-7">
140
+ <i data-feather="upload" class="w-8 h-8 text-gray-400"></i>
141
+ <p class="pt-1 text-sm text-gray-400">Click to upload documents</p>
142
+ </div>
143
+ <input type="file" class="opacity-0" multiple>
144
+ </label>
145
+ </div>
146
+ </div>
147
+ <button type="submit" class="bg-red-600 hover:bg-red-700 text-white font-bold py-3 px-6 rounded-lg transition">Submit Report</button>
148
+ </form>
149
+ </section>
150
+
151
+ <!-- Case Bundle Section -->
152
+ <section id="bundle" class="mb-16 bg-gray-800 rounded-xl p-8 shadow-lg">
153
+ <h2 class="text-3xl font-bold mb-6 text-red-500">Build Your Court Bundle</h2>
154
+ <div class="mb-8">
155
+ <div class="flex items-center mb-4">
156
+ <div class="flex-1 border-t-2 border-gray-600"></div>
157
+ <span class="px-4 text-gray-400">Step 1: Case Details</span>
158
+ <div class="flex-1 border-t-2 border-gray-600"></div>
159
+ </div>
160
+ <form class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-8">
161
+ <div>
162
+ <label class="block text-gray-300 mb-2">Case Number</label>
163
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
164
+ </div>
165
+ <div>
166
+ <label class="block text-gray-300 mb-2">Court Location</label>
167
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
168
+ </div>
169
+ <div>
170
+ <label class="block text-gray-300 mb-2">Your Role</label>
171
+ <select class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
172
+ <option>Applicant</option>
173
+ <option>Respondent</option>
174
+ </select>
175
+ </div>
176
+ <div>
177
+ <label class="block text-gray-300 mb-2">Opposing Party Name</label>
178
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-lg px-4 py-2">
179
+ </div>
180
+ </form>
181
+
182
+ <div class="flex items-center mb-4">
183
+ <div class="flex-1 border-t-2 border-gray-600"></div>
184
+ <span class="px-4 text-gray-400">Step 2: Upload Documents</span>
185
+ <div class="flex-1 border-t-2 border-gray-600"></div>
186
+ </div>
187
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-8">
188
+ <div class="border-2 border-dashed border-gray-600 rounded-lg p-4 text-center hover:border-red-500 cursor-pointer transition">
189
+ <i data-feather="file-text" class="w-8 h-8 mx-auto text-gray-400 mb-2"></i>
190
+ <p class="text-gray-300">Affidavits</p>
191
+ </div>
192
+ <div class="border-2 border-dashed border-gray-600 rounded-lg p-4 text-center hover:border-red-500 cursor-pointer transition">
193
+ <i data-feather="file-text" class="w-8 h-8 mx-auto text-gray-400 mb-2"></i>
194
+ <p class="text-gray-300">Evidence</p>
195
+ </div>
196
+ <div class="border-2 border-dashed border-gray-600 rounded-lg p-4 text-center hover:border-red-500 cursor-pointer transition">
197
+ <i data-feather="file-text" class="w-8 h-8 mx-auto text-gray-400 mb-2"></i>
198
+ <p class="text-gray-300">Orders</p>
199
+ </div>
200
+ </div>
201
+
202
+ <div class="flex items-center mb-4">
203
+ <div class="flex-1 border-t-2 border-gray-600"></div>
204
+ <span class="px-4 text-gray-400">Step 3: Generate Bundle</span>
205
+ <div class="flex-1 border-t-2 border-gray-600"></div>
206
+ </div>
207
+ <div class="text-center">
208
+ <button class="bg-rose-600 hover:bg-rose-700 text-white font-bold py-3 px-8 rounded-lg text-lg transition">Generate Professional Bundle</button>
209
+ </div>
210
+ </div>
211
+ </section>
212
+
213
+ <!-- Shame List Preview -->
214
+ <section class="mb-16">
215
+ <h2 class="text-3xl font-bold mb-6 text-center text-red-500">Patterns of Misconduct</h2>
216
+ <div class="bg-gray-800 rounded-xl overflow-hidden shadow-lg">
217
+ <div class="overflow-x-auto">
218
+ <table class="w-full">
219
+ <thead class="bg-gray-700">
220
+ <tr>
221
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Name</th>
222
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Role</th>
223
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Reports</th>
224
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Last Incident</th>
225
+ </tr>
226
+ </thead>
227
+ <tbody class="divide-y divide-gray-700">
228
+ <tr class="hover:bg-gray-700/50 cursor-pointer">
229
+ <td class="px-6 py-4 whitespace-nowrap text-red-400">Judge Smith</td>
230
+ <td class="px-6 py-4 whitespace-nowrap">Family Court</td>
231
+ <td class="px-6 py-4 whitespace-nowrap">14</td>
232
+ <td class="px-6 py-4 whitespace-nowrap">2023-11-15</td>
233
+ </tr>
234
+ <tr class="hover:bg-gray-700/50 cursor-pointer">
235
+ <td class="px-6 py-4 whitespace-nowrap text-red-400">Lawyer Jones</td>
236
+ <td class="px-6 py-4 whitespace-nowrap">Barrister</td>
237
+ <td class="px-6 py-4 whitespace-nowrap">9</td>
238
+ <td class="px-6 py-4 whitespace-nowrap">2023-10-28</td>
239
+ </tr>
240
+ <tr class="hover:bg-gray-700/50 cursor-pointer">
241
+ <td class="px-6 py-4 whitespace-nowrap text-red-400">SW Taylor</td>
242
+ <td class="px-6 py-4 whitespace-nowrap">Oranga Tamariki</td>
243
+ <td class="px-6 py-4 whitespace-nowrap">22</td>
244
+ <td class="px-6 py-4 whitespace-nowrap">2023-12-03</td>
245
+ </tr>
246
+ </tbody>
247
+ </table>
248
+ </div>
249
+ <div class="px-6 py-4 bg-gray-700 text-center">
250
+ <a href="#" class="text-rose-400 hover:text-rose-300 font-medium">View Full Accountability Database β†’</a>
251
+ </div>
252
+ </div>
253
+ </section>
254
+ </main>
255
+
256
+ <custom-footer></custom-footer>
257
+
258
+ <script src="components/navbar.js"></script>
259
+ <script src="components/footer.js"></script>
260
+ <script src="script.js"></script>
261
+ <script>
262
+ feather.replace();
263
+ </script>
264
+ </body>
265
+ </html>
style.css CHANGED
@@ -1,28 +1,67 @@
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
 
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
 
 
 
 
 
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
28
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');
2
+
3
  body {
4
+ font-family: 'Roboto', sans-serif;
5
+ }
6
+
7
+ /* Custom scrollbar */
8
+ ::-webkit-scrollbar {
9
+ width: 8px;
10
+ height: 8px;
11
+ }
12
+
13
+ ::-webkit-scrollbar-track {
14
+ background: #1f2937;
15
+ }
16
+
17
+ ::-webkit-scrollbar-thumb {
18
+ background: #f43f5e;
19
+ border-radius: 4px;
20
+ }
21
+
22
+ ::-webkit-scrollbar-thumb:hover {
23
+ background: #e11d48;
24
  }
25
 
26
+ /* Animation for buttons */
27
+ button, a[role="button"] {
28
+ transition: all 0.3s ease;
29
+ transform: translateY(0);
30
  }
31
 
32
+ button:hover, a[role="button"]:hover {
33
+ transform: translateY(-2px);
34
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
 
 
35
  }
36
 
37
+ /* Pulse animation for important elements */
38
+ @keyframes pulse {
39
+ 0% {
40
+ box-shadow: 0 0 0 0 rgba(244, 63, 94, 0.7);
41
+ }
42
+ 70% {
43
+ box-shadow: 0 0 0 10px rgba(244, 63, 94, 0);
44
+ }
45
+ 100% {
46
+ box-shadow: 0 0 0 0 rgba(244, 63, 94, 0);
47
+ }
48
  }
49
 
50
+ .pulse {
51
+ animation: pulse 2s infinite;
52
  }
53
+
54
+ /* Custom file upload styling */
55
+ input[type="file"] {
56
+ width: 0.1px;
57
+ height: 0.1px;
58
+ opacity: 0;
59
+ overflow: hidden;
60
+ position: absolute;
61
+ z-index: -1;
62
+ }
63
+
64
+ /* Table row hover effect */
65
+ tr {
66
+ transition: background-color 0.2s ease;
67
+ }