99 < style >
1010 body {
1111 min-height : 100vh ;
12- background : var (--bg-main );
12+ background : var (--bg-primary );
1313 }
1414 .theme-toggle-fab {
1515 position : fixed;
4343 </ button >
4444< div style ="padding:24px;max-width:1400px;margin:0 auto ">
4545 <!-- FBI Tip Reporting Banner -->
46- < div style ="background:linear-gradient(135deg, rgba(59,130,246,0.08) 0%, rgba(99,102,241,0.08) 100%);border:1px solid var(--border);border-radius:10px;padding:16px 20px;margin-bottom:24px ">
46+ < div style ="background:linear-gradient(135deg, rgba(59,130,246,0.08) 0%, rgba(99,102,241,0.08) 100%);border:1px solid var(--border-primary );border-radius:10px;padding:16px 20px;margin-bottom:24px ">
4747 < div style ="display:flex;align-items:start;gap:16px ">
4848 < div style ="font-size:32px "> 📞</ div >
4949 < div style ="flex:1 ">
@@ -53,16 +53,16 @@ <h3 style="margin:0 0 8px 0;color:var(--text-primary);font-size:16px">Report Tip
5353 </ div >
5454 < div style ="display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px ">
5555 < div style ="font-size:12px ">
56- < strong style ="color:var(--accent-blue ) "> 📝 Online:</ strong >
57- < a href ="https://tips.fbi.gov " target ="_blank " style ="color:var(--accent-blue );text-decoration:underline "> tips.fbi.gov</ a >
56+ < strong style ="color:var(--primary-600 ) "> 📝 Online:</ strong >
57+ < a href ="https://tips.fbi.gov " target ="_blank " style ="color:var(--primary-600 );text-decoration:underline "> tips.fbi.gov</ a >
5858 </ div >
5959 < div style ="font-size:12px ">
60- < strong style ="color:var(--accent-blue ) "> ☎️ Phone:</ strong >
60+ < strong style ="color:var(--primary-600 ) "> ☎️ Phone:</ strong >
6161 < span style ="color:var(--text-primary) "> 1-800-CALL-FBI (225-5324)</ span >
6262 </ div >
6363 < div style ="font-size:12px ">
64- < strong style ="color:var(--accent-blue ) "> 🏛️ Field Offices:</ strong >
65- < a href ="https://www.fbi.gov/contact-us/field-offices " target ="_blank " style ="color:var(--accent-blue );text-decoration:underline "> Find Local Office</ a >
64+ < strong style ="color:var(--primary-600 ) "> 🏛️ Field Offices:</ strong >
65+ < a href ="https://www.fbi.gov/contact-us/field-offices " target ="_blank " style ="color:var(--primary-600 );text-decoration:underline "> Find Local Office</ a >
6666 </ div >
6767 </ div >
6868 </ div >
@@ -72,36 +72,36 @@ <h3 style="margin:0 0 8px 0;color:var(--text-primary);font-size:16px">Report Tip
7272 < div style ="margin-bottom:24px;display:flex;align-items:center;justify-content:space-between ">
7373 < h2 style ="margin:0;color:var(--text-primary) "> 📁 Case Browser</ h2 >
7474 < div style ="display:flex;gap:12px;align-items:center;flex-wrap:wrap ">
75- < select id ="source-filter " style ="padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary) " onchange ="onSourceChange() ">
75+ < select id ="source-filter " style ="padding:6px 12px;border-radius:6px;border:1px solid var(--border-primary );background:var(--bg-secondary);color:var(--text-primary) " onchange ="onSourceChange() ">
7676 < option value ="fbi "> FBI Most Wanted</ option >
7777 < option value ="namus "> NamUs</ option >
7878 < option value ="ncmec " disabled > NCMEC (Coming Soon)</ option >
7979 </ select >
8080
8181 <!-- NamUs-specific filters (hidden by default) -->
8282 < div id ="namus-filters " style ="display:none;gap:8px ">
83- < select id ="namus-case-type " style ="padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary) ">
83+ < select id ="namus-case-type " style ="padding:6px 12px;border-radius:6px;border:1px solid var(--border-primary );background:var(--bg-secondary);color:var(--text-primary) ">
8484 < option value ="missing "> Missing Persons</ option >
8585 < option value ="unidentified "> Unidentified Persons</ option >
8686 < option value ="unclaimed "> Unclaimed Persons</ option >
8787 </ select >
88- < select id ="namus-state " style ="padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary) ">
88+ < select id ="namus-state " style ="padding:6px 12px;border-radius:6px;border:1px solid var(--border-primary );background:var(--bg-secondary);color:var(--text-primary) ">
8989 < option value =""> All States</ option >
9090 <!-- Populated dynamically -->
9191 </ select >
92- < input type ="number " id ="namus-limit " placeholder ="Limit (default: 20) " min ="1 " max ="100 " value ="20 " style ="padding:6px 12px;width:150px;border-radius:6px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary) ">
92+ < input type ="number " id ="namus-limit " placeholder ="Limit (default: 20) " min ="1 " max ="100 " value ="20 " style ="padding:6px 12px;width:150px;border-radius:6px;border:1px solid var(--border-primary );background:var(--bg-secondary);color:var(--text-primary) ">
9393 </ div >
9494
9595 < button class ="btn btn-primary " onclick ="loadCases() "> 🔄 Load Cases</ button >
9696 </ div >
9797 </ div >
9898
99- < div id ="loading-indicator " style ="display:none;text-align:center;padding:40px;color:var(--cyan ) ">
99+ < div id ="loading-indicator " style ="display:none;text-align:center;padding:40px;color:var(--primary-500 ) ">
100100 < div style ="font-size:24px;margin-bottom:12px "> ⏳</ div >
101101 < div id ="loading-text "> Loading cases...</ div >
102102 </ div >
103103
104- < div id ="error-message " style ="display:none;padding:16px;background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.3 );border-radius:8px;color:#ef4444 ;margin-bottom:24px "> </ div >
104+ < div id ="error-message " style ="display:none;padding:16px;background:rgba(239,68,68,0.1);border:1px solid rgba(239,68,68,0.4 );border-radius:8px;color:#dc2626;font-weight:500 ;margin-bottom:24px "> </ div >
105105
106106 < div id ="cases-grid " style ="display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px "> </ div >
107107
@@ -149,7 +149,7 @@ <h3 id="modal-title" style="margin:0"></h3>
149149
150150.modal-header {
151151 padding : 20px 24px ;
152- border-bottom : 1px solid var (--border );
152+ border-bottom : 1px solid var (--border-primary );
153153 display : flex;
154154 align-items : center;
155155 justify-content : space-between;
@@ -159,7 +159,7 @@ <h3 id="modal-title" style="margin:0"></h3>
159159 background : none;
160160 border : none;
161161 font-size : 28px ;
162- color : var (--text-dim );
162+ color : var (--text-tertiary );
163163 cursor : pointer;
164164 padding : 0 ;
165165 width : 32px ;
@@ -177,7 +177,7 @@ <h3 id="modal-title" style="margin:0"></h3>
177177
178178.case-card {
179179 background : var (--bg-secondary );
180- border : 1px solid var (--border );
180+ border : 1px solid var (--border-primary );
181181 border-radius : 10px ;
182182 overflow : hidden;
183183 transition : transform 0.2s , box-shadow 0.2s ;
@@ -187,7 +187,7 @@ <h3 id="modal-title" style="margin:0"></h3>
187187.case-card : hover {
188188 transform : translateY (-4px );
189189 box-shadow : 0 8px 24px rgba (0 , 0 , 0 , 0.3 );
190- border-color : var (--accent-blue );
190+ border-color : var (--primary-600 );
191191}
192192
193193.case-image {
@@ -331,7 +331,7 @@ <h3 id="modal-title" style="margin:0"></h3>
331331 casesGrid . textContent = '' ;
332332
333333 if ( cases . length === 0 ) {
334- casesGrid . innerHTML = '<div style="grid-column:1/-1;text-align:center;padding:40px;color:var(--text-dim )">No cases found</div>' ;
334+ casesGrid . innerHTML = '<div style="grid-column:1/-1;text-align:center;padding:40px;color:var(--text-tertiary )">No cases found</div>' ;
335335 return ;
336336 }
337337
@@ -352,7 +352,7 @@ <h3 id="modal-title" style="margin:0"></h3>
352352
353353 const imageHTML = imageUrl
354354 ? '<img src="' + imageUrl + '" class="case-image" alt="Case image">'
355- : '<div class="case-image" style="display:flex;align-items:center;justify-content:center;font-size:48px;color:var(--text-dim )">📋</div>' ;
355+ : '<div class="case-image" style="display:flex;align-items:center;justify-content:center;font-size:48px;color:var(--text-tertiary )">📋</div>' ;
356356
357357 // Handle description field (different names for FBI vs NamUs)
358358 const description = caseData . description || caseData . physical_description || caseData . circumstances || '' ;
@@ -364,7 +364,7 @@ <h3 id="modal-title" style="margin:0"></h3>
364364 '<div class="case-description">' + escapeHtml ( description ) + '</div>' +
365365 '<div style="display:flex;gap:4px;flex-wrap:wrap;margin-top:8px">' +
366366 '<span class="badge" style="font-size:10px">' + escapeHtml ( source ) + '</span>' +
367- ( caseData . reward_text ? '<span class="badge" style="font-size:10px;background:rgba(34,197,94,0.2 );color:#22c55e ">💰 Reward</span>' : '' ) +
367+ ( caseData . reward_text ? '<span class="badge" style="font-size:10px;background:rgba(34,197,94,0.15 );color:#16a34a;font-weight:600 ">💰 Reward</span>' : '' ) +
368368 '</div>' +
369369 '</div>' ;
370370
@@ -393,45 +393,45 @@ <h3 id="modal-title" style="margin:0"></h3>
393393
394394 // Warning message
395395 if ( caseData . warning_message ) {
396- detailHTML += '<div style="padding:12px;background:rgba(239,68,68,0.1 );border:1px solid rgba(239,68,68,0.3 );border-radius:6px;margin-bottom:16px;color:#ef4444 ">' +
396+ detailHTML += '<div style="padding:12px;background:rgba(239,68,68,0.12 );border:1px solid rgba(239,68,68,0.4 );border-radius:6px;margin-bottom:16px;color:#dc2626;font-weight:500 ">' +
397397 '<strong>⚠️ Warning:</strong> ' + escapeHtml ( caseData . warning_message ) +
398398 '</div>' ;
399399 }
400400
401401 // Caution
402402 if ( caseData . caution ) {
403- detailHTML += '<div style="padding:12px;background:rgba(245,158,11,0.1 );border:1px solid rgba(245,158,11,0.3 );border-radius:6px;margin-bottom:16px;color:#f59e0b ">' +
403+ detailHTML += '<div style="padding:12px;background:rgba(245,158,11,0.12 );border:1px solid rgba(245,158,11,0.4 );border-radius:6px;margin-bottom:16px;color:#d97706;font-weight:500 ">' +
404404 '<strong>⚠️ Caution:</strong> ' + escapeHtml ( caseData . caution ) +
405405 '</div>' ;
406406 }
407407
408408 // Reward
409409 if ( caseData . reward_text ) {
410- detailHTML += '<div style="padding:12px;background:rgba(34,197,94,0.1 );border:1px solid rgba(34,197,94,0.3 );border-radius:6px;margin-bottom:16px;color:#22c55e ">' +
410+ detailHTML += '<div style="padding:12px;background:rgba(34,197,94,0.12 );border:1px solid rgba(34,197,94,0.4 );border-radius:6px;margin-bottom:16px;color:#16a34a;font-weight:500 ">' +
411411 '<strong>💰 Reward:</strong> ' + escapeHtml ( caseData . reward_text ) +
412412 '</div>' ;
413413 }
414414
415415 // Description
416416 if ( caseData . description ) {
417417 detailHTML += '<div style="margin-bottom:16px">' +
418- '<h4 style="color:var(--text-dim );font-size:12px;margin:0 0 8px 0">DESCRIPTION</h4>' +
418+ '<h4 style="color:var(--text-tertiary );font-size:12px;margin:0 0 8px 0">DESCRIPTION</h4>' +
419419 '<div style="font-size:14px;line-height:1.6;color:var(--text-primary)">' + escapeHtml ( caseData . description ) + '</div>' +
420420 '</div>' ;
421421 }
422422
423423 // Details
424424 if ( caseData . details ) {
425425 detailHTML += '<div style="margin-bottom:16px">' +
426- '<h4 style="color:var(--text-dim );font-size:12px;margin:0 0 8px 0">DETAILS</h4>' +
426+ '<h4 style="color:var(--text-tertiary );font-size:12px;margin:0 0 8px 0">DETAILS</h4>' +
427427 '<div style="font-size:14px;line-height:1.6;color:var(--text-primary)">' + escapeHtml ( caseData . details ) + '</div>' +
428428 '</div>' ;
429429 }
430430
431431 // Subjects
432432 if ( caseData . subjects && caseData . subjects . length > 0 ) {
433433 detailHTML += '<div style="margin-bottom:16px">' +
434- '<h4 style="color:var(--text-dim );font-size:12px;margin:0 0 8px 0">SUBJECTS</h4>' +
434+ '<h4 style="color:var(--text-tertiary );font-size:12px;margin:0 0 8px 0">SUBJECTS</h4>' +
435435 '<div style="display:flex;gap:6px;flex-wrap:wrap">' ;
436436 caseData . subjects . forEach ( function ( subject ) {
437437 detailHTML += '<span class="badge">' + escapeHtml ( subject ) + '</span>' ;
@@ -442,7 +442,7 @@ <h3 id="modal-title" style="margin:0"></h3>
442442 // Field Offices
443443 if ( caseData . field_offices && caseData . field_offices . length > 0 ) {
444444 detailHTML += '<div style="margin-bottom:16px">' +
445- '<h4 style="color:var(--text-dim );font-size:12px;margin:0 0 8px 0">FIELD OFFICES</h4>' +
445+ '<h4 style="color:var(--text-tertiary );font-size:12px;margin:0 0 8px 0">FIELD OFFICES</h4>' +
446446 '<div style="display:flex;gap:6px;flex-wrap:wrap">' ;
447447 caseData . field_offices . forEach ( function ( office ) {
448448 detailHTML += '<span class="badge">' + escapeHtml ( office ) + '</span>' ;
@@ -458,8 +458,8 @@ <h3 id="modal-title" style="margin:0"></h3>
458458 }
459459
460460 // Tip Submission Section
461- detailHTML += '<div style="border-top:1px solid var(--border);padding-top:16px;margin-top:16px;margin-bottom:16px">' +
462- '<h4 style="color:var(--text-dim );font-size:12px;margin:0 0 8px 0">SUBMIT A TIP</h4>' +
461+ detailHTML += '<div style="border-top:1px solid var(--border-primary );padding-top:16px;margin-top:16px;margin-bottom:16px">' +
462+ '<h4 style="color:var(--text-tertiary );font-size:12px;margin:0 0 8px 0">SUBMIT A TIP</h4>' +
463463 '<div style="background:rgba(59,130,246,0.08);border:1px solid rgba(59,130,246,0.2);border-radius:6px;padding:12px">' +
464464 '<div style="font-size:12px;color:var(--text-secondary);margin-bottom:10px">Have information about this case?</div>' +
465465 '<div style="display:flex;flex-wrap:wrap;gap:8px">' +
@@ -480,7 +480,7 @@ <h3 id="modal-title" style="margin:0"></h3>
480480 const importData = caseData . id ? "'" + escapeHtml ( caseData . id ) + "'" :
481481 "null, '" + escapeHtml ( caseData . case_id ) + "', " + caseData . namus_id + ", '" + ( caseData . case_type . includes ( 'Missing' ) ? 'missing' : 'unidentified' ) + "'" ;
482482
483- detailHTML += '<div style="border-top:1px solid var(--border);padding-top:16px;margin-top:16px">' +
483+ detailHTML += '<div style="border-top:1px solid var(--border-primary );padding-top:16px;margin-top:16px">' +
484484 '<button class="btn btn-primary" onclick="importCase(' + importData + ')">📥 Import into Investigation</button>' +
485485 '</div>' ;
486486
0 commit comments