feat(tksafety): 테마 색상 주황→파랑 변경 (tkfb와 시각적 구분)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-13 13:43:49 +09:00
parent b14448fc54
commit e2def8ab14
10 changed files with 65 additions and 65 deletions

View File

@@ -5,13 +5,13 @@ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; b
/* Input */
.input-field { border: 1px solid #e2e8f0; transition: border-color 0.15s; outline: none; }
.input-field:focus { border-color: #f97316; box-shadow: 0 0 0 3px rgba(249,115,22,0.1); }
.input-field:focus { border-color: #3b82f6; box-shadow: 0 0 0 3px rgba(59,130,246,0.1); }
/* Toast */
.toast-message { transition: opacity 0.3s; }
/* Nav active */
.nav-link.active { background: rgba(249,115,22,0.15); color: #ea580c; font-weight: 600; }
.nav-link.active { background: rgba(59,130,246,0.15); color: #2563eb; font-weight: 600; }
/* Stat card */
.stat-card { background: white; border-radius: 0.75rem; padding: 1.25rem; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
@@ -57,7 +57,7 @@ body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; b
/* Checklist tabs */
.checklist-tab { border-bottom-color: transparent; color: #6b7280; }
.checklist-tab:hover { color: #374151; background: #f9fafb; }
.checklist-tab.active { border-bottom-color: #ea580c; color: #ea580c; font-weight: 600; }
.checklist-tab.active { border-bottom-color: #2563eb; color: #2563eb; font-weight: 600; }
/* Responsive */
@media (max-width: 768px) {

View File

@@ -50,7 +50,7 @@ async function api(path, opts = {}) {
function showToast(msg, type = 'success') {
document.querySelector('.toast-message')?.remove();
const el = document.createElement('div');
el.className = `toast-message fixed bottom-4 right-4 px-4 py-3 rounded-lg text-white z-[10000] shadow-lg ${type==='success'?'bg-orange-500':'bg-red-500'}`;
el.className = `toast-message fixed bottom-4 right-4 px-4 py-3 rounded-lg text-white z-[10000] shadow-lg ${type==='success'?'bg-blue-500':'bg-red-500'}`;
el.innerHTML = `<i class="fas ${type==='success'?'fa-check-circle':'fa-exclamation-circle'} mr-2"></i>${escapeHtml(msg)}`;
document.body.appendChild(el);
setTimeout(() => { el.classList.add('opacity-0'); setTimeout(() => el.remove(), 300); }, 3000);

View File

@@ -33,7 +33,7 @@ function renderPendingTraining() {
<td class="hide-mobile">${r.visit_time ? String(r.visit_time).substring(0, 5) : '-'}</td>
<td>${escapeHtml(r.purpose_name || '-')}</td>
<td class="text-right">
<button onclick="openTrainingModal(${r.request_id})" class="text-orange-600 hover:text-orange-800 text-xs px-2 py-1 border border-orange-200 rounded hover:bg-orange-50">
<button onclick="openTrainingModal(${r.request_id})" class="text-blue-600 hover:text-blue-800 text-xs px-2 py-1 border border-blue-200 rounded hover:bg-blue-50">
<i class="fas fa-chalkboard-teacher mr-1"></i>교육실시
</button>
</td>

View File

@@ -30,7 +30,7 @@ function renderVisitTable(visits) {
tbody.innerHTML = visits.map(v => {
const companyName = v.partner_company_name || v.company_name || '-';
const safetyIcon = v.safety_education_yn
? '<i class="fas fa-check-circle text-orange-500"></i>'
? '<i class="fas fa-check-circle text-blue-500"></i>'
: '<i class="fas fa-exclamation-triangle text-amber-500 safety-warning" title="안전교육 미이수"></i>';
const actions = v.status === 'checked_in'
? `<button onclick="doCheckout(${v.id})" class="text-blue-600 hover:text-blue-800 text-xs px-2 py-1 border border-blue-200 rounded hover:bg-blue-50">체크아웃</button>`
@@ -75,7 +75,7 @@ function initCompanySearch() {
dropdown.innerHTML = '<div class="px-3 py-2 text-sm text-gray-400">검색 결과 없음</div>';
} else {
dropdown.innerHTML = items.map(c =>
`<div class="px-3 py-2 text-sm hover:bg-orange-50 cursor-pointer" onclick="selectCompany(${c.id}, '${escapeHtml(c.company_name).replace(/'/g, "\\'")}')">
`<div class="px-3 py-2 text-sm hover:bg-blue-50 cursor-pointer" onclick="selectCompany(${c.id}, '${escapeHtml(c.company_name).replace(/'/g, "\\'")}')">
<span class="font-medium">${escapeHtml(c.company_name)}</span>
${c.business_number ? `<span class="text-gray-400 text-xs ml-2">${c.business_number}</span>` : ''}
</div>`