body {
    font-family: 'Noto Sans TC', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    background-color: #f8fafc;
}

::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.log-container::-webkit-scrollbar-track { background: #0f172a; }
.log-container::-webkit-scrollbar-thumb { background: #334155; }

@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}
.animate-shake { animation: shake 0.4s; }

.google-stripe {
    background: linear-gradient(90deg,
        #4285F4 0%, #4285F4 25%,
        #EA4335 25%, #EA4335 50%,
        #FBBC05 50%, #FBBC05 75%,
        #34A853 75%, #34A853 100%);
}

.excel-table { border-collapse: separate; border-spacing: 0; width: 100%; table-layout: auto; }
.excel-table th {
    background-color: #f1f5f9;
    border-bottom: 2px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    padding: 12px 10px;
    text-align: left;
    font-weight: 600;
    color: #475569;
    position: sticky;
    top: 0;
    z-index: 10;
    font-size: 0.875rem;
}
.excel-table td {
    border-bottom: 1px solid #e2e8f0;
    border-right: 1px solid #e2e8f0;
    padding: 0;
    position: relative;
    background-color: #ffffff;
    transition: background-color 0.2s;
}
.excel-table tr:hover td { background-color: #f8fafc; }
.excel-table input {
    width: 100%;
    height: 100%;
    padding: 12px 10px;
    border: 2px solid transparent;
    outline: none;
    background: transparent;
    box-sizing: border-box;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 0.875rem;
    color: #1e293b;
    transition: all 0.2s;
}
.excel-table input:hover { background-color: #f1f5f9; }
.excel-table input:focus {
    background-color: #eff6ff;
    border: 2px solid #3b82f6;
    border-radius: 4px;
    z-index: 5;
    position: relative;
}
.device-id-input { background-color: #f8fafc; color: #0f172a; }
.device-id-input.auto-filled {
    background-color: #ecfdf5 !important;
    color: #047857 !important;
    font-weight: 600;
}
.row-number {
    background-color: #f8fafc !important;
    color: #94a3b8;
    text-align: center !important;
    width: 48px;
    font-size: 0.8125rem;
    user-select: none;
    border-left: 1px solid #e2e8f0;
    font-weight: 500;
}
